在超过80个字符的Vim中显示不同的背景颜色

q3aa0525  于 2022-11-11  发布在  其他
关注(0)|答案(7)|浏览(227)

我看过Vim 80 column layout concerns,但是那里的答案只突出显示超过80个字符标记的实际内容。我想打开一个100+列的Vim窗口,最左边的80列使用正常背景,超过80列的内容使用稍微不同的背景。Vim窗口背景应该是不同的颜色,而不仅仅是超过80个字符点的文本。这将表明我离80个字符点有多近,而不必先过一遍。
我想目前还不可能,但我想我还是要问一下以防万一。
也许它可以用一个插件完成?

所需Vim右边距突出显示的TextMate示例

通过在TextMate的常规首选项中选择“高亮显示右边距”,您可以看到所需Vim行为的示例。

bgibtngc

bgibtngc1#

如果你有Vim〉= v7.3,你可以简单地把它添加到你的.vimrc中,以突出显示81和以后的列(所以80是你最后一个有效的列):

let &colorcolumn=join(range(81,999),",")

如果您没有看到突出显示,则可能没有设置ColorColumn突出显示颜色。添加以下内容(根据您的喜好进行调整):

highlight ColorColumn ctermbg=235 guibg=#2c2d27

现在,我喜欢突出显示第80列以及第120列和后面的列,因此我有单独的“警告”和“危险”标记。您可以这样做:

let &colorcolumn="80,".join(range(120,999),",")

示例

这是GVim编辑我的.vimrc的截图。

zysjyyx4

zysjyyx42#

高亮显示81列

:set textwidth=80
:set colorcolumn=+1

你也可以做一些造型:

:hi ColorColumn guibg=#2d2d2d ctermbg=246
du7egjpx

du7egjpx3#

在上面的注解中建议的解决方案。首先突出显示背景,然后突出显示颜色列黑色作为覆盖。将颜色列设置为1-80行。

hi Normal guibg=#32322f ctermbg=236
hi NonText guibg=#32322f ctermbg=236
hi ColorColumn guibg=#000000 ctermbg=0
let &colorcolumn=join(range(1,80),",")
mtb9vblg

mtb9vblg4#

尝试:

:/\%>80v./+

它会将+80个字符标记为错误

luaexgnf

luaexgnf5#

我不认为这是可能的有你想要的,但我以下这个问题,因为我有兴趣这样的事情自己。
也许,我说的是显而易见的,但你可以在第70+列中设置highligth来指示你离第80列有多近。

vuv7lop3

vuv7lop36#

对于那些像我一样使用onedark.vim并希望Conner发布解决方案的人,我在vimrc文件中添加了这些行

let &colorcolumn=join(range(1,80),",")
let g:onedark_color_overrides = {
  \ "black": {"gui": "#2C323C", "cterm": "236", "cterm16": "8"},
  \ "cursor_grey": {"gui": "#282C34", "cterm": "235", "cterm16": "0"}
  \ }

我只是交换了这两个值,从一个dark的源代码中取出来。

omhiaaxx

omhiaaxx7#

请注意,除了@Andrew 's的答案(实际上是官方的:help colorcolumn)之外,这些 “hack” 可能会导致如下所示的显示错误:

太可怕了...我花了半天时间才弄清楚是什么部分的配置导致了这种情况。

相关问题