我正在尝试调整我的突出显示。据我了解,Vim突出显示非常复杂,运行许多规则来确定一些文本的类别,然后这些规则被映射并可能再次映射到最终类别,然后将其映射到依赖于环境的处理(术语/cterm/gui)!
当我在cterm上时,组合比颜色多,所以你会得到重复,并且并不总是很明显哪个突出显示类别("组"?
我想将光标放在突出显示的单词上并运行命令以查看哪些突出显示规则匹配以及如何将其映射到最终处理。
这是一个功能吗?可能吗?
创建这样的映射:
nm <silent> <F1> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name")
. '> trans<' . synIDattr(synID(line("."),col("."),0),"name")
. "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name")
. ">"<CR>
并在任何令牌上使用 F1 以查看突出显示。
要找出哪个语法组导致突出显示,:syn list
显示所有活动组,但当您在光标插件下安装 SyntaxAttr.vim - 显示字符的语法突出显示属性时会更容易。我发现这个插件对于故障排除和开发语法插件是必不可少的!(基本上,这是@svlasov答案的高级版本。