我有兴趣找到一种在Vim(而不是GVim)的第80列显示垂直线的方法。
我使用了set wrap
,但我只想显示一条垂直线,这样我就可以自己包裹长线了。
答案 0 :(得分:294)
Vim 7.3中的新功能:
'colorcolumn'是以逗号分隔的屏幕列列表 用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
答案 1 :(得分:15)
编辑:对于Vim> = 7.3,请参阅答案below。
不幸的是,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的列。
答案 2 :(得分:11)
还有另一种方式来通知长线。
突出显示OverLength ctermbg = red ctermfg = white guibg =#592929
匹配OverLength / \%81v。* /
答案 3 :(得分:6)
我使用match ErrorMsg '\%>80v.\+'
,它会突出显示超过80个字符的红色。
我把这个命令放在我的python.vim和ruby.vim下〜/ .vim / after / ftplugin /.
答案 4 :(得分:3)
这里有几个答案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)