行长突出显示在控制台 Vim 中正常工作,而不是 GUI

行长突出显示在控制台 Vim 中正常工作,而不是 GUI

这个问题与这个

Damian Conway 在他的最近的 OSCON 2013 演讲关于 Vim。

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

结果是:

终端 Vim 的屏幕截图

使用控制台 Vim 时效果很好。但是,更改部分ctermbg=magentaguibg=Magenta仅突出显示字符,但不将其着色为洋红色。

gVim 的屏幕截图

我怎样才能让它在 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这样它就不会太宽。如下所示:

gvim 显示彩色列线

您可以看到两条垂直灰线,分别位于textwidth + 2和 位置90。这里,我的textwidth设置为78,因此行位于 80 和 90 个字符之外。

colorcolumn现在,您可以使用这两行代码来为 vim 7.3 之前的版本添加一个表单。将它们粘贴在else上面版本检查块的子句中。

相关内容