【问题标题】:Set alternating highlight colors to text in Vim?在Vim中将交替突出显示颜色设置为文本?
【发布时间】:2014-12-24 01:34:08
【问题描述】:

是否可以在 Vim 中为每一行设置交替突出显示颜色(奇数行号为一种颜色,偶数行号为另一种颜色)?

【问题讨论】:

标签: linux vi vim


【解决方案1】:

这可以用文本背景颜色做你想要的:

syn match Oddlines "^.*$" contains=ALL nextgroup=Evenlines skipnl
syn match Evenlines "^.*$" contains=ALL nextgroup=Oddlines skipnl

hi Oddlines ctermbg=yellow guibg=#FFFF99 
hi Evenlines ctermbg=magenta guibg=#FFCCFF

只需将此添加到.vimrc 或您想要的正确文件类型.rc

由于这利用了syntax 功能,它仅适用于可匹配的键入文本。我不知道是否有办法在 hi Normal ctermgb=darkblue guibg=darkblue 所做的文本之后交替空白“空格”的背景颜色。

【讨论】:

  • 感谢您的意见。我尝试将它放在 .vimrc 中的一个函数中并调用它,它将所有行的颜色更改为蓝色。关于在哪里看的任何想法?
  • hm,它会不会与你已有的东西发生冲突?尝试使用 -u NONE 启动 vim/gvim 以加载一个 vanilla 实例,然后查看它是否仍然发生。
  • 当 Vim 以 "-u NONE" 启动时有效。再次感谢!
  • +1 一个漂亮的答案和一段很棒的代码,用于介绍语法文件。
【解决方案2】:

没有内置任何内容,因此您必须模仿它(并遭受性能缓慢、干扰严重等后果)候选人将是:match / :call matchadd(),因为这与语法无关突出显示。演示:

hi Alternate guibg=LightGrey guifg=NONE
execute 'match Alternate /\%(' . join(map(range(1,100), '"\\%" . v:val * 2 . "l"'), '\|') . '\)/'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2012-04-25
    相关资源
    最近更新 更多