easymotion 的基本思想是为多个备选目标
加上标号,通过按键选择标号,定位备选结果,从而避免了反复多次输入光标移动指令
(jjjjjjjjjjjj 或者 llllllllllllll等)。
通过试用,发现 f 作为跳转触发快捷键比较好:f 加上两个字母,
如果有多个匹配结果,再加一个标号,最多4个按键就可以跳转到任何位置,配置如下:
let g:EasyMotion_smartcase = 1
nmap f <Plug>(easymotion-overwin-f2)
Plug 'easymotion/vim-easymotion'
Note:
按照 easymotion README 的说明,它(以及配合 incsearch)还可以实现如下功能:
-
使用
f加一个搜索字母加上标号选择实现跳转; -
使用
s加两个字母加上标号选择实现跳转; -
使用
/后面加上目标字符串,再结合标号选择跳转到任一匹配目标上; -
使用
,L结合标号选择跳转到任何行;
但 neovim 默认的 incsearch (/) 已经比较好用了,没必要再加上标号选择,也没必要再安装一个插件。
f, s 是结合搜索跳转,相比 w 纯跳转多了一个环节,且 s 覆盖了原本相对常用的修改功能;
.L 实现的功能可以被 w 覆盖,而操作复杂度比后者高的多。
另外使用 f, s 和 结合 easymotion 的 / 时出现了乱码 [2 q,见
Nvim shows weird symbols ([2 q) when changing modes,
按照说明添加了 :set guicursor= 也无效。