如何显示垂直线来包装线在 Vim?

我感兴趣的是如何在 Vim (而不是 GVim)中显示第80列的垂直线。

我已经使用了 set wrap,但是我只想显示一条垂直线,这样我就可以自己包装长线。

79236 次浏览

这里有几个答案 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个字符与红色。

我将该命令放在 python.vim 和 ruby.vim 中的 ~/. vim/after/ftplugin/下面。

编辑: 对于 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中的新功能:

“ 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