vim插件之快速移动、成对编辑

今天给大家介绍两款非常使用的vim插件,在页面内快速移动以及成对编辑。

Table of Contents

easymotion

我们知道vim编辑器可以通过按键h/j/k/l来上下移动,使用/关键字来搜索,使用按键w、e可以在单词间快速移动,使用f{char}可以在行内搜索等等。但是,这些都没有办法在整个页面内快速移动。

今天介绍一个快速移动插件easymotion,有了它,想去哪儿就去哪儿。该插件github地址是:https://github.com/easymotion/vim-easymotion

同样,我们使用vim-plug插件安装好它。然后再配置文件中加入一行映射

nmap ss <Plug>(easymotion-s2)

注意到没有,这里我们需要的是递归映射,而不是非递归映射。配置好之后,我们就可以去使用它了。下面演示如何使用它来完成在页面快速移动的功能。

如图,我们想快速移动到第9行的layui位置。如果不用easymotion的话,就需要使用vim自带搜索,输入

/layui

然后使用n/N上下移动。如果使用easymotion的话,就更加的简单和快捷。只需按下两个ss,然后输入la。

可以看到,此时界面已经不一样了,将和la匹配到的所有位置都用红色标注起来,并且每一块都有自己对应的字母。只要我们按下对应的字母,就可以快速跳到指定的位置了。

vim-surround

平时工作中,也会经常碰到成对编辑的情况下。比如将字符串的单引号换成双引号。这时候,如果没有成对编辑插件的话,就比较麻烦了,需要去修改两遍,才能完成需求。

现在,我们先把该插件安装下来。该插件github地址是https://github.com/tpope/vim-surround。

安装完成后,来和大家说说如何去使用,主要从三个方面来说明,成对修改、成对添加、成对删除。

现在,我们想将第25行的where里面的双引号换成单引号,需要如何去做。

  • 首先将光标移动到""中任意字符上
  • 输入cs"'cs(c表示change),表示将双引号改为单引号

如果想成对删除,删除双引号,又该怎么去做

  • 将光标移动到""中任意字符上
  • 输入ds",d表示delete

双引号已经被删除了,但现在需要添加双引号有应该怎么去做

  • 将光标移动到i上
  • 输入ysiw"