VIM 的使用

VIM 的基本模式

1. 一般模式

    一进入 VIM 就是处于一般模式(命令模式),该模式下只能输入指令,不能输入文字。这些指令可能是让光标移动的指令,也可能是删除指令或取代指令。

2. 编辑模式

    输入” i” 就会进入编辑模式(插入模式),此时在状态列会有INSERT字样。在该模式下才可以输入文字,按 Esc 键又会回到命令模式

3. 底行模式

    输入 :就会进入底行模式,此时坐下角会有一个冒号,等待输入命令。按 Esc 键就可以返回命令模式。

VIM 的基本操作

VIM 的命令行模式操作

1. 进入插入模式

  • i:光标前插入在光标左侧输入正文。

  • I:在光标所在行的开头输入正文。

  • a:光标后插入在光标右侧输入正文。

  • A:在光标所在行的末尾输入正文。

  • o:在光标所在行的下一行增添新行。

  • O:在光标所在行的上一行增添新行。

2. 移动光标

  • hjkl: 左、下、上、右。

  • Ctrl+B:在文件中向上移动一页(相当于 PageUp 键)

  • Ctrl+F:在文件中向下移动一页(相当于 PageDown 键)

  • G: 移到文件最后。

  • H: 将光标移动到屏幕最上行 (Highest)

  • nH: 将光标移到屏幕的第 n 行。

  • M: 将光标移到屏幕的中间。

  • L: 将光标移到屏幕的最下行。

  • nL: 将光标移动到屏幕的倒数第 n 行。

  • w: 在指定行内右移光标,到下一个字的开头。

  • e: 在指定行内右移光标,到下一个字的末尾。

  • b: 在指定行内左移光标,到前一个字的开头。

  • 0:左移光标,到本行的开头。

  • $:右移光标,到本行的末尾。、

  • ^:移动光标,到本行的第一个非空字符。

3. 删除

  • x: 删除光标所指的当前的字符

  • nx: 删除光标所指的前 n 个字符

  • :1,#d: 删除行 1 至行 #的文字

  • X: 删除光标前面一个字符。

  • D:删除至行尾

  • dw: 删除光标右侧的字。

  • ndw: 删除光标右侧的 n 个字。

  • db: 删除光标左侧的字。

  • ndb: 删除光标左侧的 n 个字。

  • dd: 删除光标所在行。

  • ndd: 删除 n 行内容。

4. 更改

  • cw: 更改光标处之字到此一单词之字尾处。

  • c#w: 如 c3w 表示更改 3 个单词。

  • cc: 修改行。

5. 取代

  • r: 取代光标处之字符

  • R: 取代字符直到按 Esc 键为止。

6. 复制和粘贴

  • yw: 复制光标之字到字尾至缓存区。

  • yy: 复制光标所在之行至缓存区。

  • #yy: 如 5yy,复制光标所在之处以下 5 行至缓冲区。

  • P: 把缓冲区的资料粘贴在所在行之后。

  • p: 把缓冲区的资料粘贴在所在行之前。

7. 撤销

  • u:undo, 复原至上一动作。

8. 重复上一个命令

  • .: :重复上一个命令

VIM 的底行模式的操作

1. 退出命令

  • :wq 或: x,先保存再退出 VIM。

  • :w 或: w filename :保存 / 保存为 filename 名的文件。

  • :q :退出

  • :q! 或: quit :不保存退出 VIM。

  • :wq! :强制保存, 并退出。

2. 显示和取消行号

  • :set nu: 显示行号。

  • :set nonu: 不显示行号。

3. 字符搜索

  • :/str :正向搜索

  • :?str :反向搜索

  • :/str/ w file :正向搜索,并将第一个包含字符串 str 的行写入 file 文件

  • :/str1,/str2/w file :正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件

4. 删除正文

  • :d :删除光标所在行

  • :3 d :删除 3 行

  • :.,$ d :删除当前行至正文的末尾

  • :/str1/,str2/d :删除从字符串 str1 到 str2 的所有行。

5. 恢复文件

  • :recover :恢复文件