vim常用命令
1.一般模式
光标的移动
命令 | 含义 |
---|---|
h或← | 光标向左移动一个字符 |
j或↓ | 光标向下移动一个字符 |
k或↑ | 光标向上移动一个字符 |
l或→ | 光标向右移动一个字符 |
打字时右手默认的位置:hjkl分别对应左下上右。如果想进行多次移动,例如向下移动20行,可以使用20j或20↓的组合按键。
命令 | 含义 |
---|---|
Ctrl-y | 向上滚屏(滚动一行) |
Ctrl-e | 向下滚屏(滚动一行) |
Ctrl-u | 向上滚动半屏 |
Ctrl-d | 向下滚动半屏 |
Ctrl-b | 向上滚动整屏 |
Ctrl-f | 向下滚动整屏 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格赋的上一行 |
【n】【空格键】 | n表示数字,光标向右移动n个字符 |
0或^或【Home键】 | 数字0,移动到这一行的第一个字符 |
$或【End键】 | 移动到这一行最后一个字符 |
H | 移动到当前屏幕最上面一行的第一个字符 |
M | 移动到当前屏幕最中间一行的第一个字符 |
L | 移动到当前屏幕最下面一行的第一个字符 |
G | 移动到当前文件的最后一行 |
【n】G | n表示数字,移动到当前文件的第n行 |
gg | 移动到当前文件的第一行,相当于1G |
【n】【Enter】 | n表示数字,光标向下移动n行 |
查找和替换
命令 | 含义 |
---|---|
/word | 向下查找一个名为word的字符串 |
?word | 向上查找一个名为word的字符串 |
n | 跳转到下一个查找结果 |
N | 跳转到上一个查找结果 |
:s/word1/word2/ | 用word2替换当前行出现的第一个word1 |
:s/word1/word2/g | 用word2替换当前行所有的word1 |
:【n1】,【n2】s/word1/word2/g | 用word2替换【n1】行到【n2】行所有的word1 |
:%s/word1/word2/g | 用word2替换文件中所有的word1 |
:1,$s/word1/word2/g | 用word2替换第一行到最后行所有的word1 |
:%s/word1/word2/gc | 用word2替换文件中所有的word1,每次替换要求确认 |
删除、复制、粘贴
命令 | 含义 |
---|---|
x | 向后删除一个字符,相当于delete |
X | 向前删除一个字符,相当于backspace |
【n】 | 连续向后删除n个字符 |
dd | 删除光标所在行 |
【n】dd | 删除光标所在行(含)向下n行 |
d1G | 删除光标所在行到第一行的所有数据 |
dG | 删除光标所在行到最后一行的所有数据 |
d$ | 删除光标所在字符到该行最后一个字符 |
d0 | 删除光标所在字符到该行第一个字符 |
yy | 复制光标所在行 |
【n】yy | 复制光标所在行(含)向下n行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在字符到该行第一个字符 |
y$ | 复制光标所在字符到该行最后一个字符 |
p(小写) | 在下一行粘贴 |
P(大写) | 在上一行粘贴 |
J | 将光标所在行与下一行合成一行 |
u | 撤销上一个动作 |
Ctrl-r | 重做上一个动作 |
. | 重复上一个动作 |
:g/word/d | 删除包含特定字符(word)的所有行 |
2.一般模式切换到编辑模式
命令 | 含义 |
---|---|
i | 进入插入模式:在当前光标处插入 |
I | 进入插入模式:在当前行首(第一个非空格字符处)插入 |
a | 进入插入模式:在当前光标的下一个字符处插入 |
A | 进入插入模式:在当前行尾插入 |
o | 进入插入模式:在当前行下插入一行 |
O | 进入插入模式:在当前行上插入一行 |
r | 进入取代模式:取代光标处所在字符(只取代一次) |
R | 进入取代模式:一直取代光标所在的字符,直到按下【ESC】 |
【ESC】 | 退出编辑模式,回到一般模式 |
3.一般模式切换到指令模式
命令 | 含义 |
---|---|
:w | 保存 |
:w! | 强制保存 |
:q | 退出 |
:q! | 不保存退出 |
:wq | 保存退出 |
:wq!强制保存后退出 | |
ZZ | 若文件没有改动,则不保存退出;若文件有改动,则保存后退出 |
:w 【filename】 | 另存为【filename】 |
:r 【filename】 | 读入另一个文件【filename】,将【filename】的内容添加到光标后 |
:【n1】,【n2】 w 【filename】 | 将n1行到n2行的内容另存为文件【filename】 |
:! 【command】 | 暂时离开vim,执行命令【command】 |
设置
命令 | 含义 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
:set nu! | 显示/取消行号 |
状态
命令 | 含义 |
---|---|
Ctrl-g | 当前文件信息:”文件名” 共多少行 |
g Ctrl-g | 当前光标信息:第几行;第几列;第几个词;第几个字节 |