SpaceVim 中高亮光标下 Symbol 的正确姿势

928 阅读1分钟
原文链接: zhuanlan.zhihu.com

用 Vim 应该有这样的觉悟:只有想不到,没有做不到的。

在 SpaceVim 里,默认使用星号 * 来高亮光标下的单词,并且可以使用 n/N 进行前后跳转。最近在做的一个功能效果图 如下:

Highlight symbol mode​github.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 模式,这是一个多光标编辑模式,实际上就是已前面选择的多个词为基础,进行多光标编辑: