总结下 Vim 常用命令以及使用技巧。

移动命令

h       左
j 下
k 上
l 右
space 右

e 后单词尾
w 后单词头
b 前单词头

^ 行首
$ 行尾

{ 上段
} 下段

H 屏幕上面
M 屏幕中间
L 屏幕下面

gg 文件头
G 文件尾

zz 定位屏幕中间
zt 定位屏幕顶部
zb 定位屏幕底部

mk 标记
`k 转到标记

插入命令

a       后字符
A 行尾

i 前字符
I 行首

s 当前字符
S 当前行

o 下一行
O 上一行

cc 当前行
C 后字符至行尾
c+op

查找

/a       文章 n N
?a 反向

fa 当前行 ; ,
Fa 反向

ta 当前行的前一个字符 ; ,
Ta 反向

\* 文章 n N
\# 反向

编辑

%       括号匹配

<< 缩进

u 撤回

p 粘贴
P 粘贴至上一行

yy 复制
Y 复制

rt 替换
R 替换模式

dd 剪切
D 剪切至行尾

J 连接下一行

x 剪切当前字符
X 剪切前一个字符

zc 折叠
zo 打开折叠

v 选中字符
V 选中当前行

~ 切换当前字符大小写
Vu 当前行小写
VU 当前行大写

寄存器

"ayy    将当前数据复制到 a的寄存器
"ap 将 a的寄存器中的数据粘贴出来

qa 寄存器a的开始记录
op 操作~
q 结束记录
@a 使用寄存器

"_ 黑洞寄存器,说白了就是删除

"adiw
"aP

命令

:w       保存文件
:wq 退出编辑器,且保存文件
:x 退出编辑器,且保存文件

q! 放弃修改
e! 放弃 修改后 载入文件

范围

介词
i Inside "x" => ""
a Around "x" =>
f Forward x => ...o...
t To x => ...ox...

名词
w Word
s Sentence
p Paragraph
b ()
B {}
0 lineHead
[]
''
""
<>

技巧

动词   介词          名词
d/y i/a/f/t c~/b/B/w/"/'

动词 数词 名词
2 d w

数词 动词
5 G
4 j

xp 交换两个字符

yiw 拷贝一个单词

dk 删除当前行以及上一行

dft 删除至t包括t

必备

.       重复上一次修改命令