如何显示垂直线包装在VIM行?

我想find一种方法来显示Vim(而不是GVim)80列的垂直线。 我已经使用了set wrap ,但是我只想显示行自己换行。

编辑:对于Vim> = 7.3请参阅下面的答案。

不幸的是,vim没有任何机制可以像你想要的那样在列之后显示垂直线(不像TextMate)。 不过,您可以使用其他视觉指标来显示线条太长。

这就是我使用的(你可以把它放在你的.vimrc ):

 nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr> hi OverLength ctermbg=none cterm=none match OverLength /\%>80v/ fun! s:LongLineHLToggle() if !exists('w:longlinehl') let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0) echo "Long lines highlighted" else call matchdelete(w:longlinehl) unl w:longlinehl echo "Long lines unhighlighted" endif endfunction 

那么你可以使用<Leader>H切换80以上的列被高亮显示。

Vim 7.3新增function:

'colorcolumn'是用ColorColumn突出显示的屏幕列的逗号分隔列表。 用于alignment文本。 将使屏幕重绘速度变慢。 屏幕列可以是绝对数字,也可以是以“+”或“ – ”开头的数字,它是从“textwidth”中增加或减去的。

来自文档的示例:

 :set colorcolumn=+1 " highlight column after 'textwidth' :set colorcolumn=+1,+2,+3 " highlight three columns after 'textwidth' :highlight ColorColumn ctermbg=lightgrey guibg=lightgrey 

你也可以使用绝对数字:

 :set colorcolumn=80 

还有另外一种方式来通知长队。

突出显示OverLength ctermbg =红色ctermfg =白色guibg =#592929
匹配OverLength /\%81v.*/

Vim 80列布局的担忧

我使用match ErrorMsg '\%>80v.\+'这将突出显示超过80个字符的红色。

我把这个命令放在〜/ .vim / after / ftplugin /下的python.vim和ruby.vim中。

这里有几个答案http://vim.wikia.com/wiki/Highlight_long_lines简单的自动命令;

 :au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1) :au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)