如何显示垂直线以在Vim中换行?


Answers:


15

编辑:对于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脚本表示形式。请参阅显示当前<leader>键设置
2013年

@Will,以艰难的方式学习Vimscript是学习vim兔子洞的好资源。
jazzabeanie

310

Vim 7.3的新功能:

“ colorcolumn”是用ColorColumn突出显示的屏幕列的列表,以逗号分隔。对齐文本很有用。将使屏幕重绘变慢。屏幕列可以是绝对数字,也可以是添加到“ 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

4
我认为在此处注意颜色是由突出显示颜色自动确定的,除非您像示例中那样手动设置它。
亚历克斯·哈特

请注意,highlight必须任何colorscheme命令之后设置该设置,因为这会覆盖突出显示的颜色。
c4urself

7
我走了明亮的脑袋红...'因为你知道...
行长

您知道色柱具有两种不同颜色的方法吗?我想要两个:一个简单的代码(80个字符),一个非常模糊的代码(72个字符),用于流畅的文本/注释。
爱丽丝

值得一提的是,textwidth当您键入时,这也会导致vim包装。
小鸡


6

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

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


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.