这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战
光标移动命令
上下左右移动
很多人还在使用上下左右进行移动光标。事实上,我更推荐使用 hjkl 进行光标移动。因为在 vim 操作中,我们一般还会要去配合其它命令一起去使用,比如复制、粘贴,这个使用我们使用 hjkl 就会很方便。
-
h:左移光标 -
l:右移光标 -
j:下移光标 -
k:上移光标
其它移动命令
首先我们来看一下一些基础的移动命令,这些命令可以和其它一些命令配合使用,比如添加、删除等操作。
词、行、首、尾移动命令
-
gg:光标移动到文档最顶部; -
G:光标移动到文档最底部; -
w:光标移动到下一个单词开头(word); -
e:光标移动到单词末尾(end); -
E:光标移动到单词末尾(包括标点符号); -
b:光标移动到单词开头(begin); -
B:光标移动到单词开头(包括标点符号); -
0:光标移到到行首; -
$:光标移动到行尾;
句、段移动命令
-
):移至下一个句子的开头(测试只对英文句号.生效) -
(:移至上一个句子的开头(测试只对英文句号.生效) -
}:移至下一个段落的开头(以空白行分隔,中英文都生效) -
{:移至上一个段落的开头(以空白行分隔,中英文都生效)
组合命令
删除(剪切)操作
-
dd:删除整行; -
d$:从当前光标位置 删除到行尾; -
d0:从当前光标位置 删除到行首; -
dw:从当前光标位置 删除到下一个单词开头; -
de:从当前光标位置 删除到单词末尾; -
dE:从当前光标位置 删除到单词末尾(带标点符号); -
db:从当前光标位置 删除到单词开头; -
dB:从当前光标位置 删除到单词开头(带标点符号); -
dG:删除当前行到最后一行所有行; -
dgg:删除当前行到最开始一行所有行;
补充说明:句子、段落移动配合删除命令 d 场景不多,在这里不多介绍。删除当前字符使用 x 命令,删除前一个字符使用 X 命令。
选择、复制、粘贴命令
日常工作中我们经常使用的命令还包括选择(v)、复制(y)和粘贴(p)命令,今天我们看下这些命令如何和光标移动命令组合使用。
选择命令
-
v$:从当前光标位置 选择到行尾; -
v0:从当前光标位置 选择到行首; -
vw:从当前光标位置 选择到下一个单词开头; -
ve:从当前光标位置 选择到单词末尾; -
vE:从当前光标位置 选择到单词末尾(带标点符号); -
vb:从当前光标位置 选择到单词开头; -
vB:从当前光标位置 选择到单词开头(带标点符号); -
vG:选择当前行到最后一行所有行; -
vgg:选择当前行到最开始一行所有行;
复制命令
-
y$:从当前光标位置 复制到行尾; -
y0:从当前光标位置 复制到行首; -
yw:从当前光标位置 复制到下一个单词开头; -
ye:从当前光标位置 复制到单词末尾; -
yE:从当前光标位置 复制到单词末尾(带标点符号); -
yb:从当前光标位置 复制到单词开头; -
yB:从当前光标位置 复制到单词开头(带标点符号); -
yG:复制当前行到最后一行所有行; -
ygg:复制当前行到最开始一行所有行;
粘贴命令
-
p:在光标位置之后粘贴 -
p:在光标位置之前粘贴
剪切命令
v 选中 + d 剪切 + p 粘贴
批量插入操作
通过 $ 字符,我们可以实现批量在行尾添加相同内容的操作。不过批量在行首插入数据使用字符为 ^。批量插入命令如下。
1. 在行首添加相同内容
:%s/^/要添加的内容
2. 在每行行尾添加相同的内容
:%s/$/要添加的内容
页面移动
如果要移动页面而不是光标(注意是页面动,光标不随页面动),则可以使用以下命令:
-
control-d:向下翻页(Down) -
control-u:向上翻页(Up) -
control-e:向下滚动一行 -
control-y:向上滚动一行