vim 常用命令
光标移动
- h 或 退格:左移一个字符
- l 或 空格:右移一个字符
- j:下移一行
- k:上移一行
- gj:移动到一段内的下一行
- gk:移动到一段内的上一行
- + 或 Enter:移至下一行第一个非空白字符
- -:移至上一行第一个非空白字符
- w:前移一个单词,停在下一个单词开头
- W:前移一个单词(忽略部分标点)
- e:前移一个单词,停在下一个单词末尾
- E:前移一个单词,停在标点(如有)
- b:后移一个单词,停在上一个单词开头
- B:后移一个单词(忽略部分标点)
- (:前移 1 句
- ):后移 1 句
- {:前移 1 段
- }:后移 1 段
- gg:到文件头部
- G:到文件尾部
- $:到行尾
- 0:到行首
翻屏
- Ctrl + f:下翻一屏
- Ctrl + b:上翻一屏
- Ctrl + d:下翻半屏
- Ctrl + u:上翻半屏
- Ctrl + e:向下滚动一行
- Ctrl + y:向上滚动一行
- n%:到文件 n% 位置
- zz:当前行移到屏幕中央
- zt:当前行移到屏幕顶端
- zb:当前行移到屏幕底端
插入
- I:在当前行第一个非空字符前插入
- gI:在当前行第一列插入
- a:在光标后插入
- A:在当前行末尾插入
- o:在下方新建一行插入
- O:在上方新建一行插入
- :r filename:在当前位置插入另一个文件内容
- :[n]r filename:在第 n 行插入另一个文件内容
剪切和复制
- [n]x:剪切光标右边 n 个字符(相当于 d[n]l)
- [n]X:剪切光标左边 n 个字符(相当于 d[n]h)
- y:复制可视模式下选中的文本
- yy 或 Y:复制整行
- y[n]w:复制 n 个词
- y[n]l:复制光标右边 n 个字符
- y[n]h:复制光标左边 n 个字符
- y$:从光标到行尾复制
- y0:从光标到行首复制
- :m,ny:复制第 m 到 n 行
- y1G 或 ygg:复制光标以上所有行
- yG:复制光标以下所有行
- d:删除(剪切)可视模式下选中的文本
- d$ 或 D:删除到行尾
- d[n]w:删除 n 个单词
- d[n]l:删除光标右边 n 个字符
- d[n]h:删除光标左边 n 个字符
- d0:删除到行首
- p:在光标后粘贴
- P:在光标前粘贴
查找和替换
- /something:向后查找 something
- ?something:向前查找 something
- n:向后查找下一个
- N:向前查找下一个
- s/old/new:替换当前行第一个 old
- s/old/new/g:替换当前行所有 old
- %s/old/new/g:替换整个文件的所有 old
技巧