适用范围:对vim有一定认识的初学者。
1 一般模式
移动光标 | |
h或← | 光标向左移动一个字符 |
j或↓ | 光标向下移动一个字符 |
k或↑ | 光标向上移动一个字符 |
l或→ | 光标向右移动一个字符 |
N+(h,j,k,l或←,↓,↑, →) | 光标向指定方向移动N个字符(行) |
Ctrl+f | 屏幕向下移动一页 |
Ctrl+b | 屏幕向上移动一页 |
Ctrl+d | 屏幕向下移动半页 |
Ctrl+u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一列 |
- | 光标移动到非空格符的上一列 |
N+space | 光标向右移动N个字符 |
0或Home | 光标移动到本行行首 |
$或End | 光标移动到本行行尾 |
H | 光标移动到屏幕第一行行首 |
M | 光标移动到屏幕中间行行首 |
L | 光标移动到屏幕最后一行行首 |
G | 光标移动到档案最后一行行首 |
N+G | 光标移动到档案第N行行首 |
N+Enter | 光标向下移动N行 |
搜寻与取代 | |
/word | 向光标之下查找word字符串 |
?word | 向光标之上查找word字符串 |
n | 重复前一个搜寻动作 |
N | 反向重复前一个搜寻动作 |
:n1,n2s/word1/word2/g | n1,n2为数字。在n1与n2行之间使用word2替换word1 |
:1,$s/word1/word2/g | 全文使用word2替换word1 |
:1,$s/word1/word2/gc | 全文使用word2替换word1,且在替换前显示提示字符给用户确认是否需要替换 |
删除、复制与粘贴 | |
x,X | 在一行中,x为向后删除一个字符,X为向前删除一个字符 |
N + x | 连续删除光标前N个字符 |
N + X | 连续删除光标后N个字符 |
dd | 删除光标所在行 |
N+dd | 删除光标所在向下N 行 |
d+N+G | 删除光标到第N行的所有数据 |
dG | 删除光标到最后一行的所有数据 |
d$ | 删除光标到该行最后一个字符的所有数据 |
d0 | 删除光标到该行第一个字符的所有数据 |
yy | 复制光标所在行的数据 |
N+yy | 复制光标所在的向下N行的所有数据 |
y+N+G | 复制光标所在行到N行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在到该行行首的所有数据 |
y$ | 复制光标所在到该行行尾的所有数据 |
p | 在光标下一行粘贴已复制内容 |
P | 在光标上一行粘贴已复制内容 |
J | 将光标所在行与下一行合并为同一行 |
u | 复原前一动作 |
Ctrl+r | 重做上一动作 |
.(小数点) | 重复前一动作 |
区块选择 | |
v | 字符选择,将光标经过地方反白选择 |
V | 行选择,将光标经过的行反白选择 |
Ctrl+v | 区块选择,可用长方形选择 |
y | 复制反白选择 |
d | 删除反白选择 |
2.一般模式切换到编辑模式
进入插入或取代 | |
i | Insert mode:从目前光标所在处插入 |
I | Insert mode:在目前所在行的第一个非空格符处插入 |
a | Insert mode:从目前光标所在的下一个字符处插入 |
A | Insert mode:从光标所在行的最后一个字符处开始插入 |
o | Insert mode:在目前光标所在的下一行插入新的一行 |
O | Insert mode:在目前光标所在的上一行插入新的一行 |
r | Replace mode:取代光标所在的那一个字符 |
R | Replace mode:一直取代光标所在的文字,直到按下Esc为止 |
Esc | 退出编辑模式,回到一般模式 |
3.一般模式切换到指令模式
指令列命令 | |
:w | 将编辑数据写入硬盘档案中 |
:w! | 若文件属性为只读,强制写入该档案 |
:q | 离开vim |
:q! | 若改动过档案,又不想储存,强制离开不储存档案 |
:wq | 储存后离开 |
:wq! | 强制储存后离开 |
ZZ | 若档案没有改动,不储存离开;若档案已经被改动,储存后离开。 |
:w [filename] | 将编辑的数据存储成另一个档案 |
:r [filename] | 在编辑的数据中读入另一个档案数据,添加到光标所在行后面 |
:n1,n2 w [filename] | 将n1到n2的内容储存成filename档案 |
:!command | 暂时离开vim到指令模式下执行shell command |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
多档案编辑 | |
:n | 编辑下一个档案 |
:N | 编辑上一个档案 |
:files | 列出目前这个vim开启的所有档案 |
多窗口 | |
:sp [filename] | 开启一个新窗口,如果加filename表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示) |
Ctrl + w + j或Ctrl + w + ↓ | 光标移到下方窗口 |
Ctrl + w + k或Ctrl + w + ↑ | 光标移到上方窗口 |
Ctrl + w + q | 结束光标所在窗口 |