【问题标题】:Concealing a character in Vim without affecting how it's highlighted在 Vim 中隐藏一个字符而不影响它的突出显示方式
【发布时间】:2014-03-09 18:13:06
【问题描述】:

我想显示“␣”而不是不间断空格,因为它们默认不可见,并将以下行添加到我的vimrc

syntax match nonbreaking "\%xa0" conceal cchar=␣
set conceallevel=1
highlight nonbreaking ctermbg=NONE guibg=NONE

虽然这有效,但它还会为所有出现的不间断空格添加背景颜色 - 即使是 {cterm,gui}bg=NONE 行:

有没有办法将 U+00ad “隐藏”在“␣”后面而不影响它的突出显示方式?

【问题讨论】:

    标签: vim vim-syntax-highlighting


    【解决方案1】:

    好吧,这不是您关于隐藏字符背景的问题的直接答案,尽管这是您的问题的解决方案:

    要将不可破坏的空格显示为,您最好使用listchars 设置:

    :set listchars=nbsp:␣
    

    这是我完整的listchars 设置,如果你感兴趣的话:

    :set listchars=eol:¶,trail:~,extends:⫸,precedes:⫷,tab:▸ ,nbsp:␣
    

    这不会影响颜色。

    更多信息:he listchars

    HTH

    【讨论】:

    • 不错!我不知道 listchars 中有 nbsp。我会考虑为所有文件启用list。 (现在我只为代码启用它。)
    【解决方案2】:

    我还建议不要为此使用 conceal 功能,因为它会干扰现有的语法突出显示;最好按照@zmo 的建议使用'listchars'(但:set list 也有副作用,例如带有包装)。

    为了完整起见,您可以通过Conceal 高亮组影响隐藏字符的视觉外观。

    :hi clear Conceal
    

    清除现有的突出显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 2011-06-29
      • 2013-01-29
      相关资源
      最近更新 更多