Vim变量语法高亮显示

CS *_*ent 11 syntax vim syntax-highlighting highlight vim-syntax-highlighting

我想更改我的vim配置文件,以便只突出显示我声明的变量,而不是关键字.本文展示并解释了我的意思:替代语法突出显示

我是vim的初学者(我从未更改过默认的配置文件).有人能指出我正确的方向吗?

ben*_*her 5

作为概念证明,我尝试过

let vars = ['init', 'editable', 'init_ui']
let colors = ['ff0000', '00ff00', '0000ff']
for var in vars
  execute 'syn keyword var_' . var var
  execute 'hi default var_' . var 'guifg=#' . remove(colors, 0)
endfor
Run Code Online (Sandbox Code Playgroud)

它按预期工作。这为列表中的每个变量创建了语法项: var_initvar_editablevar_init_ui。然后它为每个语法项分配突出显示颜色。

为了超越概念证明,您必须获得变量名称列表。您可以通过解析标记文件(例如,由 ctags 生成)或在 vim 中编写解析器(这将是非常可移植的)来完成此操作。:hi default您可以对列表进行排序并删除重复项,但我认为如果您跳过此步骤,使用将会节省您的时间。想出一种比我的例子更好的生成颜色的方法。

当输入缓冲区或用户显式调用函数时,您可以使用自动命令来完成所有这些操作。然后您可以开始考虑在定义新变量时自动更新。