概念

VIM编辑器的前身是VI(Visual interface)编辑器,相当于VI的升级版。
VIM是文本编辑器,可以编辑纯文本文件,但是不能像Office Word、WPS那样进行排版(设置字体,段落格式等)。

VIM的四种模式

  • 一般模式(Normal mode):可以通过快捷键进行光标移动、快速编辑等操作
  • 命令模式(Command mode):状态栏以:开头,可以输入并允许VIM命令
  • 插入模式(Insert mode):可以编辑文本内容,但无法使用一般模式下的快捷键和命令模式下的命令
  • 可视模式(Visual mode):可以选择文本内容

从命令行进入VIM的方式:

  • vi:直接进入vim的欢迎界面,不打开任何文件
  • vi filename:打开filename文件
  • vi +n filename:打开filename文件,并将光标置于第n行行首
  • vi + filename:打开filename文件,并将光标置于最后一行行首

从VIM退出到命令行的方式:

  • :q与:q!
  • :wq与:wq!
  • ZZ与ZQ

从普通模式进入插入模式的快捷键:

  • a:在光标所在位置后进入插入模式,append
  • A:将光标移动到行尾并进入插入模式
  • i:在光标所在处进入插入模式,insert
  • I:将光标移动到行首并进入插入模式
  • o:在光标当前行下方插入一个空行,并在此空行行首进入插入模式
  • O:在光标当前行上方插入一个空行,并在此空行行首进入插入模式

从普通模式进入可视模式的快捷键:

  • v:按字符选择
  • V(shift+v):按行选择
  • ctrl+v:按列选择

从任意模式退出到普通模式的方式:ESC

Snipaste_2019-09-18_08-48-04.png

普通模式

光标移动

  • 移动光标:hjkl
  • 屏幕向下移动一页(forward):ctrl+f
  • 屏幕向上移动一页(backward):ctrl+b
  • 将光标移动到下一个单词的首字母:w
  • 如果当前光标不在本单词的末尾字母,则移动到本单词的末尾字母上,否则移动到下一个单词的末尾字母:e
  • 如果当前光标不在本单词的首字母,则移动到本单词的首字母上,否则移动到上一个单词的首字母:b
  • 将光标移动到行首: 0
  • 将光标移动到本行第一个非空字符上: ^
  • 将光标移动到行尾: $
  • 在光标位置的下一行插入一个空行:o
  • 在光标位置的上一行插入一个空行:O
  • 将光标移动到这个屏幕的最上方那一行的第一个字符:H
  • 将光标移动到这个屏幕的最下方那一行的第一个字符:L
  • 将光标移动到这个文件的第一行: gg
  • 将光标移动到这个文件的最后一行:G
  • 将光标移动到这个文件的第n行:nG
  • 匹配括号移动:%

快速编辑

  • 删除当前光标位置的字符:x
  • 删除一整行: dd
  • 删除光标所在的向下 n 行: ndd
  • 删除本单词中光标右边的所有字符:dw
  • 删除本单词中光标左边的所有字符:db
  • 删除游标所在处,到该行的最后一个字符: d$
  • 删除游标所在处,到该行的最前面一个字符: d0
  • 删除光标所在到最后一行的所有数据: dG
  • 删除整个文件的所有内容:ggdG
  • 将光标所在行与下一行的数据结合成同一行:J
  • 撤销上一次的编辑内容:u
  • 重做上一次的编辑内容:ctrl+r、.
  • 替换光标当前位置的字符:r
  • 保存并退出:ZZ

命令模式

  • 打开行号:set nu
  • 取消行号:set nonu
  • 保存:w
  • 将文件保存为:w [filename]
  • 退出:q
  • 强制退出:q!
  • 保存并退出:wq
  • 将 n1 到 n2 的内容储存成 filename 这个文件:n1,n2 w [filename]
  • 打开文件: e filename
  • 查找字符串:/string
  • 查找下一个字符串出现的位置:n
  • 查找上一个字符串出现的位置: N
  • 移动到这个文件的第n行:n

可视模式

  • 选择字符:v
  • 选择行:shift + v
  • 复制选中内容:y
  • 复制当前行: yy
  • 粘贴:p
  • 剪切选中内容:c (会进入插入模式,如果需要粘贴剪切的内容,需要先退出插入模式)
  • 删除选中内容:d
  • 选择列:ctrl + v