Vim 常用快捷键
键位预览图
一般模式下的光标移动、复制粘贴、搜索替换
光标移动
键位 | 功能 |
---|---|
h,j,k,l | 上,下,左,右 |
[n] + h,j,k,l | 上,下,左,右 移动 n |
[ctrl] + f, [ctrl] + b | 上下翻页 |
[ctrl] + d, [ctrl] + u | 上下翻半页 |
[n] + [space] | 向右移动 n |
0 | 移动到行首 |
$ | 移动到行尾 |
H | 移动到屏幕最上方那一行 |
M | 移动到屏幕中间那一行 |
L | 移动到屏幕最下方那一行 |
G | 移动到文件最后一行 |
[n] + G | 移动到第几行 |
gg | 移动到第一行 |
n + [Enter] | 向下移动 n 行 |
搜索替换
键位 | 功能 |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串 |
?word | 向光标之上寻找一个名称为 word 的字符串 |
n | 重复前一次搜索动作 |
N | 反向进行前一次的搜索动作 |
:[n1],[n2]s/word1/word2/g | 在 n1 行和 n2 行之间搜索 word1 ,并替换成 word2 |
:1,$s/word1/word2/g | 全文搜索 word1 ,并替换成 word2 |
:1,$s/word1/word2/gc | 全文搜索 word1 ,并替换成 word2,替换之前提示 |
删除、复制与粘贴
键位 | 功能 |
---|---|
x,X | 向后删除字符,向前删除字符 |
[n] + x | 向后连续删除 n 个字符 |
dd | 删除一整行 |
[n] + dd | 向下删除 n 行 |
d1G | 删除光标到第 1 行的数据 |
dG | 删除光标到最后一行的数据 |
d$ | 删除光标到该行尾的数据 |
d0 | 删除光标到该行首的数据 |
yy | 复制光标所在行 |
[n + ]yy | 向下复制 n 行 |
y1G | 复制光标到第 1 行的数据 |
yG | 复制光标到最后一行的数据 |
y$ | 复制光标到行尾的数据 |
y0 | 复制光标到行首的数据 |
p,P | 将数据粘贴到光标的下一行,上一行 |
J | 将光标下一行与当前行结合成同一行 |
u | 复原前一个动作 |
[ctrl] + r | 重做上一个动作 |
. | 重复前一个动作 |
输入模式
键位 | 功能 |
---|---|
i,I | 在光标处输入,在所在行第一个非空格处开始输入 |
a,A | 在光标下一个字符开始输入,从光标所在行最后一个字符开始输入 |
o,O | 在光标的下一行输入新的一行,在光标的上一行输入新的一行 |
r,R | 输入取代光标所在字符一次,一直取代光标所在文字 |
[esc] | 退出输入模式 |
指令模式
键位 | 功能 |
---|---|
:w | 将编辑的数据写入硬盘 |
:w! | 强制写入 |
:q | 离开编辑器 |
:q! | 强制离开 |
:wq | 保存并离开 |
ZZ | 如果文档没有修改,则不保存离开,如果修改过,则保存后离开 |
:w[filename] | 将文档写入另一个文档 |
:r[filename] | 将另一个文档的数据加入当前行 |
:[n1],[n2] w [filename] | 将 n1 到 n2 的内容存入另一个文件 |
:! [command] | 暂时离开编辑器,在指令模式下执行 command |
set nu | 显示行号 |
set nonu | 不显示行号 |