VIM快捷键

基本移动

keydescription
h l k j左,右一字符;上一行,下一行
b w左,右到一个词或记号
ge e左,右到词或记号的末尾
{ }上,下一段的开始
( )上,下一句的开始
0 gm一行的开始,中间
^ $一行的第一,最后一个字符
nG nggn行,默认为最后一行,第一行
n%文件的n%(n必须指定)
n|当前行的第n
%匹配的括号,注释,#define
nH nL从窗口的开始,末尾算起的第n
M窗口的中间一行

插入 替换

keydescription
i a在光标前,后插入
I A在行首,行尾插入
gI在第一列插入
o O在当前行下面,上面插入新行
rcc替换光标下的字符
grc同r,但不影响布局
R从光标处开始替换多个字符
gR同R,但不影响布局
cm更改到移动命令m处的文本
cc or S更改当前行
C更改到行尾
s更改一个字符并插入
~切换大小写并推进光标
g~m切换大小写到移动命令m处的文本
gum gUm小写化,大写化到移动命令m处的文本
<m >m向左,右缩进到移动命令m处的文本
n<< n>>向左,右缩进n

删除

keydescription
x X删除光标下,光标前的字符
dm删除到移动命令m
dd D删除当前行,删除到行末
J gJ当前行与下一行合并,不包括空格
:rd删除r
:rdx删除r行并存入寄存器x

插入模式

keydescription
^Vc ^Vn按照字面意思插入c,插入十进制字符n
^A插入上次插入过的文本
^@同^A并且停止插入进入命令模式
^Rx ^R^Rx插入寄存器x的内容,字面意思
^N ^P在光标前,后文本补全
^W删除光标前的词
^U删除所有当前行插入的字符
^D ^T向左,右缩进一个单位长度
^Kc1c2 or c1c2输入复合字母**\c1,c2**
^Oc临时在命令模式运行命令c
^X^E ^X^Y向上,下滚动
or ^[取消编辑进入编辑模式

复制

keydescription
"x对下个删除,复制,粘贴操作指定寄存器x
:reg显示所有寄存器的内容
:reg x显示寄存器x的内容
ym复制到移动命令m
yy or Y复制当前行到寄存器
p P在光标之后,之前粘贴寄存器内容
]p [p同p,P并自动缩进
gp gP同p,P并把光标置于新文本后

高级插入

keydescription
g?m到移动命令m处执行rot13编码
n^A n^X光标处数字**+n,-n**
gqm格式化到移动命令m的行来修复宽度
:rce w从范围r到宽度w的中间行
:rle i范围r缩进i的左对齐的行
:rri w范围r到宽度w的右对齐的行
!mc通过命令c过滤到移动命令m
n!!c通过命令c过滤n
:r!c通过命令c过滤范围r

tags: #vim