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=
也无效。