这个问题与这个。
Damian Conway 在他的最近的 OSCON 2013 演讲关于 Vim。
highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)
结果是:
使用控制台 Vim 时效果很好。但是,更改部分ctermbg=magenta
以guibg=Magenta
仅突出显示字符,但不将其着色为洋红色。
我怎样才能让它在 gVim 中正确工作?
答案1
嗯,对我有用吗?作为参考,我正在运行 Vim v7.4 patch 335。(它没有太多问题!!)
我在我的中添加了以下两行.vimrc
:
highlight ColorColumn ctermbg=magenta guibg=Magenta
call matchadd('ColorColumn', '\%81v', 100)
重新加载 vim 和 taa-daa!第 81 个位置的字符被神奇地变成了洋红色。
编辑:根据下面的评论,我们发现@isxek 需要将这两行放在 .vimrc 文件的最后。显然,使用的配色方案 (Molokai) 设置了 ColorColumn 突出显示方案。我没有看到这个问题,因为我在所有内容加载之后设置了 ColorColumn 突出显示,本质上执行的操作与“将行放在最后”相同。
就我个人而言,我建议使用唯一的Group
标识符,这样您就不会弄乱实际ColorColumn
突出显示组的突出显示颜色设置。
highlight MyLineTooLongMarker ctermbg=magenta guibg=Magenta
call matchadd('MyLineTooLongMarker', '\%81v', 100)
适用于 vim 和 gvim。
您是否尝试过/使用过ColorColumn
? Vim 中相对较新的选项,可根据 突出显示一列(或多列!)textwidth
。已添加version 7.3
。非常方便!
我这样使用它:
" it didn't exist before Vim v7.3, sometimes I encounter older versions of vim (centOS, looking at you!!)
if v:version >= 703
" a faint grey (gray?) color, not too insistent
highlight ColorColumn term=reverse ctermbg=233 guibg=#202020
" put the marker(s) at 'textwidth+2' (and at position 120)
set colorcolumn=+2,120
" if we're called as '*view', or on a console, turn off the colorcolumn
if v:progname =~? 'view' || &term =~? 'linux|console'
set colorcolumn=
endif
endif
因此,我的显示屏上实际上有两条线,分别显示在textwidth + 2
和 位置120
,这是我的默认设置。我截取了一张屏幕截图,并移动了线条,set colorcolumn=+2,90
这样它就不会太宽。如下所示:
您可以看到两条垂直灰线,分别位于textwidth + 2
和 位置90
。这里,我的textwidth
设置为78,因此行位于 80 和 90 个字符之外。
colorcolumn
现在,您可以使用这两行代码来为 vim 7.3 之前的版本添加一个表单。将它们粘贴在else
上面版本检查块的子句中。