当使用不同语言进行编码时,我倾向于将行限制为特定长度(通常为79或80个字符)。实线显示在该列上),或者通过更改文本的颜色来表示它已经过去了。单行吗?

#1 楼

您可以使用:set colorcolumn(简称:set cc)选项在特定的行上显示标尺,该选项仅在Vim 7.3或更高版本中可用。该列的颜色变为红色,从而为您提供可视化的标尺。



如果要使用红色以外的其他颜色(这确实很突出) ,您可以通过将highlight设置为ColorColumn来更改颜色。 cterm参数和使用guibg参数的Vim的GUI版本。 0是黑色的ASCII转义码的值,变亮时为灰色(默认情况下为灰色)。值lightgrey用于Vim的GUI版本,例如gVim,以将背景颜色更改为浅灰色。

评论


您甚至可以有多个逗号分隔的色列!

– 200_success
2015年2月4日在22:02

将其与join&range结合使用,您可以有一堆颜色很少的列。我的.vimrc具有:执行“ set colorcolumn =”。 join(范围(81,335),',')

–科迪民意测验
2015年2月11日在11:11



有没有一种方法可以仅针对特定文件类型设置此颜色列,例如Fortran 77文件?

– zyy
19年11月29日在15:39

除了使用ctermbg更改背景色外,还可以设置ctermfg来更改该列的前景色。

–user26171
19/12/19在1:49



@zyy您想研究在vimrc中将autocmd与FileType一起使用。我在我的vimrc中使用ReStructuredText文件执行此操作。 (我具有riv插件设置来识别文件类型。)autocmd FileType rst set colorcolumn = 100

–约西亚
20 Mar 3 '20 at 14:32

#2 楼

作为凯文答案的补充,您可以有多个色列。在编写代码时,有时会有80列的“软”限制和120列的“硬”限制。所以我想在80行,然后在120之后的每一列上色。

我用
可以轻松将其修改为其他首选项。

#3 楼

Vim 7.3带有colorcolumn选项,在其他答案中也有详细介绍。使用vim的match功能(详细信息,请参见:help match)进行列计数。

本质上,match命令允许您为与给定正则表达式匹配的文本创建持久突出显示。 :match ColorColumn "\%80v."将在“ ColorColumn”组的第80列中突出显示文本。当然,您可以替换任何突出显示组和任何列值。如果需要强烈的视觉指示,请使用表达式"\%>79v.\+"突出显示第80列及以后的列。更多。)

仅当指定列中存在实际字符时,此方法才会突出显示,但是这在视觉上不如\%80v一致。

评论


就我个人而言,我发现不一致的匹配方法更好,因为它仅突出显示我超出80列限制的那些行,而不是在屏幕右侧显示(对我而言)侵入性的大红线。因此,在用于Python的vimrc中,我使用call matchadd('ColorColumn','\(\%80v \ | \%100v \)')(80和100是PEP 8中建议的长度)

–贾兰布
2015年2月10日,9:54

#4 楼

我主要在vim(版本7.4)中进行编码,并在.vimrc中添加了以下两行以维持100个字符长度的“ colorcolumn”。

:set colorcolumn=100                                                                                
:hi ColorColumn ctermbg=lightcyan guibg=blue


我的环境是color-xterm,所以我通常会填充“ ctermbg”参数。

对于好奇的人,要在vim中找到可用的颜色名称,请打开vim并运行以下命令。它将显示可以用作参数值的颜色名称列表。