我感兴趣的是如何在 Vim (而不是 GVim)中显示第80列的垂直线。
我已经使用了 set wrap,但是我只想显示一条垂直线,这样我就可以自己包装长线。
set wrap
这里有几个答案 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)
还有另外一种方法来通知排长队的人。
highlight OverLength ctermbg=red ctermfg=white guibg=#592929 <br> match OverLength /\%81v.*/
Vim 80列布局问题
我使用的 match ErrorMsg '\%>80v.\+'将突出显示任何超过80个字符与红色。
match ErrorMsg '\%>80v.\+'
我将该命令放在 python.vim 和 ruby.vim 中的 ~/. vim/after/ftplugin/下面。
编辑: 对于 Vim > = 7.3,请参阅答案 下面。
遗憾的是,vim 没有像您希望的那样在列后显示垂直线的机制(不像 TextMate)。但是,您可以使用其他可视指示器来显示一行太长。
下面是我使用的方法(你可以把它放在你的 .vimrc中) :
.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个列。
<Leader>H
Vim 7.3中的新功能:
“ color column”是一个逗号分隔的屏幕列表,这些列是 用 ColorColumn 突出显示。对齐文本很有用 使屏幕重绘较慢。屏幕列可以是一个绝对数字,或 前面有“ +”或“-”的数字,加上或减去 “短信宽度”。
来自文档的例子:
: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