代码之家  ›  专栏  ›  技术社区  ›  Akobold

Vim Conceal亮点

  •  11
  • Akobold  · 技术社区  · 11 年前

    使用vim的隐藏功能时 set cole=2 ,vim为cchar中配置的内容隐藏适当的文本,并使用conceal组高亮显示。

    我的问题是,我使用了c/c++中的隐藏功能来替换如下操作 && || ,etc用于unicode etc,并且我还在html中使用concel来替换文本实体,如“ç”到“§”。

    所以我在~/.vim/after/syntax/c.vim中

    hi clear Conceal
    

    以及在~/.vim/after/syntax/html.vim中

    hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue
    

    问题是这些设置是全局设置。如果我打开一个c文件,然后打开一个html文件,当我回到c文件时,Conceal组会根据最后打开的缓冲区高亮显示。

    我的问题是:我可以将Conceal组设置为习惯于与Conceal不同的内容吗?如果没有,我如何使高亮显示特定于当前缓冲区(而不是全局)?

    1 回复  |  直到 11 年前
        1
  •  9
  •   Ingo Karkat    11 年前

    你不能。好吧,你可以设置 :autocmds 切换 Conceal 组的高亮显示取决于当前缓冲区,但对于其他类型的非活动可见缓冲区,它仍然处于关闭状态。总的来说,重点小组是全球性的,这种情况不太可能改变。

    为了解决你的困境,我会选择一个突出显示 隐藏 这对于C/C++的使用来说足够不引人注目,但在视觉上却很明显,可以显示被替换的HTML实体。对我来说,彻底清除 隐藏 高亮显示不是预期用途;它应该总是提醒你,你看到的是 文本中的实际内容。