Answers:
您可以使用:set colorcolumn
(:set cc
简称)选项在特定行显示标尺,该选项仅在Vim 7.3或更高版本中可用。
set colorcolumn=80
这会将该列的背景色设置为红色,从而为您提供可视的标尺。
如果要使用红色以外的其他颜色(它确实很突出),可以通过设置highlight
for 来更改颜色ColorColumn
。
highlight ColorColumn ctermbg=0 guibg=lightgrey
您可以使用cterm
参数设置Vim终端版本的颜色,使用参数设置Vim的GUI版本的颜色guibg
。的0
是用于黑色的ASCII换码,明亮时是灰色(它是,默认情况下)的值。该值lightgrey
用于Vim的GUI版本,例如gVim,以将背景色更改为浅灰色。
execute "set colorcolumn=" . join(range(81,335), ',')
作为凯文答案的补充,您可以有多个色列。当我编写代码时,有时会有80列的“软”限制和120列的“硬”限制。所以我想在80行,然后在120之后的每一列上色。
我这样做
let &colorcolumn="80,".join(range(120,999),",")
当然,可以很容易地将其修改为其他首选项。
Vim 7.3带来了该colorcolumn
选项,在其他答案中也有详细介绍。
但是,如果由于某种原因没有7.3版,您仍然可以使用vim的match
功能直观地看到您超出了特定的列数(:help match
有关详细信息,请参见)。
本质上,match命令允许您为与给定正则表达式匹配的文本创建持久性突出显示。:match ColorColumn "\%80v."
将使用“ ColorColumn”组突出显示第80列中的文本。当然,您可以替换任何突出显示组和任何列值。如果您想要一个强烈的视觉指示,该表达式"\%>79v.\+"
将突出显示第80列及以后的列。
(\%80v
表示“在虚拟列80中匹配,” \%>79v
表示“ 在虚拟列79 之后匹配;:help /\%c
有关更多信息,请参见。)
但是,只有在指定的列中存在实际字符时,此方法才会突出显示,这使它在视觉上不如一致colorcolumn
。
match
es的一致性不太好,因为它仅突出显示超出80列限制的行,而不是在屏幕右侧显示(对我而言)侵入性的大红色线。因此,在用于Python的vimrc中,我使用了call matchadd('ColorColumn', '\(\%80v\|\%100v\)')
(PEP 8中建议的长度为80和100)