Vim光标移动命令使用总结光标移动命令页面移动参考文

这是我参与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:向上滚动一行

参考文档