1. 光标移动
- 上下左右
- n n n + 上下左右:向该方向移动 n n n 行或 n n n 个字符
- 0 或 Home:光标移动到行首
- $ 或 End:光标移动到行尾
- G:光标移动到文件最后一行
- n n n + G:光标移动到第 n n n 行
- gg:光标移动到文件首行
- Ctrl + F:向下翻页
- Ctrl + B:向上翻页
2. 状态改变
- 显示行号:
:set number
- 隐藏行号:
:set nonumber
- 撤销:u
- 重做:Ctrl + r
3. 插入
- i:在光标前插入
- I:在当前行的第一个非空字符前插入
- o:在光标下面新建一行输入
- O:在光标上面新建一行输入
- a:在光标后插入
- A:在当前行最后插入
-
:r filename
在当前光标的下一行插入另一个文件的内容 -
:[n]r filename
在第 n + 1 n+1 n+1 行插入另一个文件的内容
4. 删除
-
[ n ] [n] [n] + x:向后删除 n n n 个字符
-
[ n ] [n] [n] + X:向前删除 n n n 个字符
-
dd:删除光标所在那一行
-
[ n ] [n] [n] + dd:从光标所在那一行起,向下删除 n n n 行
5. 复制与剪切
- yy:复制光标所在这一行
- n n n + yy:从光标所在这一行开始向下复制 n n n 行
- [ n ] [n] [n] + x:向后剪切 n n n 个字符
- [ n ] [n] [n] + X:向前剪切 n n n 个字符
6. 粘贴
- p:在光标之后粘贴
- P:在光标之前粘贴
7. 查找
/ + 字符串:查找字符串并高亮显示,n 表示向上查找,N 表示向下查找,退出高亮显示使用 :nohlsearch
8. 替换
-
:s/old/new
:用 new 替换行中首次出现的 old -
:s/old/new/g
:用 new 替换行中所有的 old -
:n,m s/old/new/g
:用 new 替换从 n 到 m 行里所有的 old -
:%s/old/new/g
:用 new 替换当前文件里所有的 old
9. 多窗口
-
:sp filename
:水平分屏打开新窗口,不给定文件名就是指当前文件再打开一个 -
:vsp filename
:垂直打开新窗口,不给定文件名就是指当前文件再打开一个 -
Ctrl + ww:切换窗口之间的光标