hi,大家好,这次介绍一下 vim 的瞬间移动插件 vim-easymotion。 目前还没编辑器支持眼球追踪技术,眼睛指哪打哪,看哪光标就移动到哪,所以在编辑器里边移动的时候笔者总感觉太龟速了。 (除了LSP(language server)之外,感觉以后编辑器的发展方向应该是AI补全(已经有了目前),眼球追踪定位和用嘴炮快速口喷代码来实现录入,从而彻底解放码农双手,真正进入智能时代)
vim-easymotion 已经算是一个比较老的插件了,笔者日常使用的比较频繁,但是却似乎很少有见过周围的小伙伴使用这个插件。 之前介绍 vim 的快速移动的时候介绍过,这次着重单独分享一下这个插件。
其实 vim 在编辑模式下相比其他编辑器没啥能玩的花样,大部分的移动命令都是在 normal 模式之下。 vim 因为有文本对象的概念,所以我们操作的时候可以基于一个对象来操作,比如一个单词,句子,段落,括号里的内容,还可以加上数字前缀指定操作次数。 normal 模式下移动的方式也非常多,比如基于单词的 w(word) 和 b(backword),在当前行使用 f{char} 或者 F{char} 来快速正向或者 反向定位到一个字符(find),使用 * 和 # 移动到相同的下一个或者上一个单词,使用 % 在匹配的括号之间跳转,使用 / 和 ? 来快速正向和反向搜索等。相比一些只能根据单字符移动的编辑器来说,效率会提升不少。
如果想快速定位到当前屏幕任意一个位置,我们还可以通过插件来实现,这次介绍的就是 vim-easymotion 插件,我称之为瞬间移动插件。很多人又要头大看官方英文文档了,这里我简单总结了一下,其实我一个命令就应付了几乎所有需求,也没啥记忆成本。
安装和使用非常简单,如果你使用 vim-plug 直接加入以下配置到 vimrc,去掉注释一共两行。
Plug 'easymotion/vim-easymotion'
" 使用 ss 启用
nmap ss <Plug>(easymotion-s2)使用方法就是 normal 模式下直接输入 ss 然后输入两个目标字符(如果只想定位到一个字符就输入一个字符之后回车),这个时候屏幕会高亮那些候选单词,直接输入对应的字母就能跳过去了。 如果盲打没问题的话基本就可以实现『瞬间移动』的效果啦,(当然为了提高移动效率你得先逼着自己适应一下 HJKL,抛弃方向键)。 视频里我会做一个简单演示,没什么记忆成本我就能使用 easymotion 来做瞬间移动。 (完整的恰饭视频您可以在 B 站同名用户看到)。
以下是广告时间: