如何在vim / gvim中设置行长标记?


75

一些GUI文本编辑器有一条垂直线用作行长标记(它有助于使源代码文件中的行短于80个字符)。

在vim / gvim中是否可以有类似的东西?我知道Ruler vim选项,但是在大屏幕上直观地跟随它不是很方便。

编辑:谷歌搜索“ colorcolumn”以了解更多信息时,我发现此问题与https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns重复


Answers:


131

只要执行这个

:set colorcolumn=72

您还可以在参数前面加上-+,以在的左边或右边放置许多列的标记,并且该标记textwidth接受以逗号分隔的列列表。我认为该colorcolumn选项仅在Vim 7.3中。看到

:help colorcolumn

8
哇,vim永不停止让我惊奇!
Peter Nore

4
真好!当设置了,和–最多显示10条换行且第一列突出显示时columns=80,该wrap功能也很有用colorcolumn=81,161,241,321,401,481,561,641,721,801
阿米尔(Amir)2012年

20

摘自OSCON 2013上Damian Conway的“更多即时更好的Vim”演讲

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

DarkCyan当该行超过80个字符的最大值时,这会导致该字符以洋红色突出显示(屏幕截图位于中)。

启用高亮显示的vim

对于gVim:最好将这两行移至.vimrc文件的最后一部分,以确保其正常工作。


!我刚刚回答了您关于这个……小世界的非常相似的问题! superuser.com/questions/771558/...
lornix

我输入了这个答案,然后想起我无法在gVim中执行此操作,所以我问。;)
Isxek

哇,真是太好了!这是我什至不知道要寻找的功能。我正在使用'\$81v\S'仅匹配非空白字符的模式。这意味着当该行正好是80个字符长时,高光将不会显示(这确实让我感到困扰)。看到更多信息stackoverflow.com/questions/12985042/…–
fvgs

1
想要对我之前的评论做一些更正。该$应该是一个%。同样,我现在使用该模式,\%81v.因为这可以确保第81列中的任何字符都会突出显示第81列,这可能就是您想要的。
fvgs


0

以下是《Hacking Vim:A Cookbook》中一个笨拙的技巧,可以使 Kim Schultz 的最新Vim编辑器发挥最大作用

它用ErrorMsg(通常是鲜红色)突出显示超过80个字符的任何行。对我来说效果很好。

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

我应该如何使用此代码段?只是将其粘贴到.vimrc中?
vtest

首先尝试:call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)就足够了。但是我不推荐这样做,因为@garyjohn知道得更好
unperson325680 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.