用 Vim 应该有这样的觉悟:只有想不到,没有做不到的。
在 SpaceVim 里,默认使用星号 * 来高亮光标下的单词,并且可以使用 n/N 进行前后跳转。最近在做的一个功能效果图 如下:
Highlight symbol modegithub.com
之所以做这个功能,是因为有时候需要在给定范围内有选择地高亮某个变量,比如我可以限定在当前方法内高亮光标下的变量,然后还可以进程筛选。
这一功能相比 Vim 自带的好处在于,在下方提供一个提示窗口,并且显示单键快捷键,对,没错,就是单键快捷键。比如,默认时高亮当前窗口的词语,超出窗口范围的不匹配。你可以用 r 键切换 range,目前支持的范围是:整个buffer,当前窗口范围以及当前方法内。可以用 n/N 前后跳,可以用 tab 高亮与否。
上面的 gif 中,可以看出,单键快捷键目前才四个,下面打算加入:
n : next item
N/p: Previous item
r: change range
R: reset
e: iedit
d/D: next previous definition
b: search buffers
/: search proj
f: search files
s: swoop
最终,会实现一个 基于已选择的变量,进行多光标编辑。这一功能依赖于 SpaceVim 的 Iedit 模式。这一模式提供了多光标编辑的支持。
上面的按键当中,有一个 e,是启动 iedit 模式,这是一个多光标编辑模式,实际上就是已前面选择的多个词为基础,进行多光标编辑: