如何显示垂直线以在Vim中包裹线?

如何显示垂直线以在Vim中包裹线?,vim,word-wrap,Vim,Word Wrap,我感兴趣的是找到一种在Vim(而不是GVim)中第80列显示垂直线的方法 我已经使用了设置换行,但我只想显示一条垂直线,这样我就可以自己换行了。这里有几个简单的自动命令答案 :au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1) :au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1) :au bufwanter*让w:m1=m

我感兴趣的是找到一种在Vim(而不是GVim)中第80列显示垂直线的方法

我已经使用了
设置换行
,但我只想显示一条垂直线,这样我就可以自己换行了。

这里有几个简单的自动命令答案

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

还有另一种方法可以通知长途电话

highlight OverLength ctermbg=red ctermfg=white guibg=#592929 <br>
match OverLength /\%81v.*/
突出显示超长字符mbg=红色字符mfg=白色guibg=#592929
匹配超长/\%81v*/

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


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

编辑:对于vim>=7.3,请参见答案

不幸的是,vim没有任何机制可以像您所希望的那样在列后面显示垂直线(比如说,与TextMate不同)。但是,您可以使用其他视觉指示器来显示线条过长

以下是我使用的内容(您可以将其放入
.vimrc
):

nnoremap H:callLongLineHLToggle()
hi超长字符MBG=none字符M=none
匹配超长/\%>80v/
有趣!s:LongLineHLToggle()
如果!存在('w:longlinehl')
设w:longlinehl=matchadd('ErrorMsg','.\%>80v',0)
回声“长线突出显示”
其他的
调用matchdelete(w:longlinehl)
unl w:longlinehl
回声“长线不亮”
恩迪夫
端功能
因此,您可以使用
H
切换高亮显示的80以上的列。

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

我认为最好在这里注意,颜色是由高亮颜色自动确定的,除非您像示例中那样手动设置。注意,
highlight
设置必须在任何
colorscheme
命令之后设置,因为这将覆盖高亮颜色。我选择了bright,burn your brain red…'因为你知道。。。行长最好指出,
textwidth
在您键入时也会导致vim换行。@chutsu vim颜色图表位于:引线键的vim脚本表示形式。请看@Will,这是了解vim兔子洞的一个很好的资源
:set colorcolumn=80