Vim隐藏亮点

时间:2013-02-25 16:38:39

标签: vim vim-syntax-highlighting

当使用vim的隐藏功能set cole=2时,vim会隐藏cchar中配置的相应文本,并使用隐藏组突出显示它。

我的问题是我使用c / c ++中的隐藏功能来替换像&& ||等操作用于unicode⋀⋁等,我也在html中使用concel来替换文本实体,如“&安培; ccedil;”到“ç”。

所以我有〜/ .vim / after / syntax / c.vim

hi clear Conceal

和〜/ .vim / after / syntax / html.vim

hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue

问题是此设置是全局的。如果我打开一个c文件,然后打开一个html文件,当我返回到c文件时,隐藏组按照最后打开的缓冲区突出显示。

我的问题是:我可以将隐藏组设置为与隐藏不同的东西吗?如果没有,我如何制作特定于当前缓冲区的亮点(而不是全局)?

1 个答案:

答案 0 :(得分:7)

你做不到。好吧,您可以设置:autocmds以根据当前缓冲区切换Conceal组的突出显示,但对于其他类型的非活动可见缓冲区,它仍然会关闭。一般来说,突出显示组是全局的,这不太可能改变。

为了解决你的困境,我会为Conceal选择一个突出显示,这个突出显示对于你的C / C ++使用都是不显眼的,但在视觉上不同以显示被替换的HTML实体。对我来说,完全清除Conceal突出显示并非预期用途;它应该总是提醒您所看到的是而不是文本中的实际内容。