UP | HOME

Vim Keymaps

Table of Contents

移动

Keymap Description
h j k l 左 下 上 右
w 下个单词的词首
W 下一个单词的词首(以空格区分单词)
e 下一个单词的词尾
E 下一个单词的词尾(以空格区分单词)
b 上一个单词的词首
B 上一个单词的词首(以空格区分单词)
n-w/W/e/E/b/B n 为移动的单词个数
<> v 模式选中后进行缩进

跳转

Keymap Description
% 可以匹配{},"",(),[]之间的跳转
H M L 直接跳转到当前屏幕的顶部、中部、底部
#H 跳转到当前屏幕的第#行(切记是当前屏幕)
#L 跳转到当前屏幕的第#行(切记是当前屏幕)
() 移动到上/下一个句首
{} 移动到上/下一个段首
zt 当前编辑行为屏顶
zz 当前编辑行为屏中
zb 当前编辑行为屏尾
G 直接跳转到文件尾部
gg 直接跳转到文件顶部
0 跳转到行首
\$ 跳转到行尾部
2$ 跳转到向下两行的尾部
# 向右跳转#个字符(#跟空格)
#G 跳转第#行
:# 跳转第#行(#跟空格)
fs 跳转到下一个字母 s 之后
2fs 跳转到往下第二个 s 字母之后
Fs 跳转到上一个字母 s 之后
2Fs 跳转到往上第二个 s 字母之后
[[]] 光标向上/下跳转到代码块开头
gD 光标跳转到局部变量定义处
'' 光标跳转到上次停靠处
C-e 向下滚动一行
C-y 向上滚动一行
C-d 向下滚动半屏
C-u 向上滚动半屏
C-f 向下滚动一屏
C-b 向下滚动一屏

编辑

新增

Keymap Description
i 进入插入模式
I 在当前行的行首插入
a 在光标后插入
A 在当前行的行尾插入
o 在当前行之后插入新行
O 在当前行之前插入新行

修改

Keymap Description
r 替换光标所在的字符
R 替换光标所到的字符
cc 取代光标所在整行
C 取代到行尾部,包括光标处字符
c0 取代到行首,不包括光标处字符
cw 修改光标所在的字符到该单纯结尾
s 以插入的形式替换光标所在的一个字符
S 以插入的模式替换整行
ci( 修改配对标点符号中的文本内容(这里以小括号为例子)
di( 删除配对标点符号中的文本
yi( 复制配对标点符号中的文本
vi( v 模式下选中配对符号中的内容
c/d/y/va( 剪切/删除/复制/选中成对符号及其中的内容

删除

Keymap Description
x 删除光标右边的字符
nx 删除光标右边 n 个字符
X 删除光标左边的字符
nX 删除光标左边 n 个字符
dl 删除当前字符,相当与 x
dh 删除前一个字符
dw 向右删除一个单词(光标之单纯的剩余部分)
dnw 删除 n 个单词
db 删除到上个单词的开始位置
de 删除一个单词的结尾位置
dne 删除光标后 n 个单词
dd 删除光标所在行
ndd 向下删除 n 行(包光标所在行)
dj 删除当前行及其下一行
dk 删除当前行及其上一行
dG 删除光标所在行到文本末尾
d1G 删除光标所在行到第一行
dgg 删除当前行到文本首部所在行
D 从光标所在位置删除到行尾
d0 删除到行首,不包括光标所在字符
:n,$d 删除 n 行及其后所有行
:1,$d 删除所有行
:n1,n2d 删除 n1 到 n2 之间的行
diw 删除单词(光标在单词开头中间都一样),空格也是一个单词
daw 删除一个单词和一个空格
dis 删除一个句子
das 删除一个句子
dip 删除一个段落,光标移至该段落下一行行首
dap 删除一个 ie 段落,光标移至下段最后行行首
daB 删除{}及其内容
diB 删除{}中的内容

复制/剪切/粘贴

Keymap Description
yy/Y 复制当前行
nyy/nY 复制当前行以下 n 行(包括当前行)
p/P 粘贴在当前光标所在的行下/行上
ddp 交换当前行和其下一行
xp 交换两个字符的顺序(光标之后两个字符)
Xp 交换两个字符的顺序(光标之前两个字符)
deep 交换两个单词的顺序
ndd 剪切当前行以下 n 行(包括当前行)
:n1,n2d 剪切 n2,n2 行之间的内容
:n2,n2 m n3 将 n1,n2 行之间内容移动至 n3 行之后

Created: 2018-01-19 五 14:03

Validate