Vim突出显示 - 有没有办法找出在特定点应用的内容?

时间:2015-03-13 09:43:19

标签: vim

我正在尝试调整我的突出显示。 Vim突出显示非常复杂,据我所知,许多规则用于确定一些文本的类别,然后这些规则被映射并可能再次映射到最终类别,然后映射到依赖于环境的处理(术语/ CTERM / GUI)!

因为我在cterm上有更多的组合而不是颜色,所以你得到了重复,并且并不总是很明显哪个突出显示类别(“组”?)已应用于何处。

我想将光标放在突出显示的单词上并运行命令以查看匹配的高亮规则以及如何将其映射到最终处理。

这是一个功能吗?有可能吗?

2 个答案:

答案 0 :(得分:1)

创建这样的映射:

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 以查看突出显示。

答案 1 :(得分:0)

要找出导致突出显示的语法组,:syn list会显示所有活动组,但在安装SyntaxAttr.vim - Show syntax highlighting attributes of character under cursor插件时更容易。我发现这个插件对于故障排除和开发语法插件是必不可少的! (基本上,它是@ svlasov答案的高级版本。)