我在Vim中做80列指示的方式似乎不正确:set columns=80。 有时我也设置文本宽度,但我希望能够看到和预期行溢出设置列替代。

这有一些不幸的副作用:

我不能设置数字,因为害怕在行号顺序不同的文件之间分裂;例如,< 100行文件和>= 100行文件将需要两个不同的设置列值,因为额外的列用于额外的数字显示。 我还启动了新的(g)Vim会话,而不是垂直分割窗口。这是因为vsplit迫使我在每次打开或关闭一个窗格时设置列,因此启动一个新会话不那么麻烦。

当您想要设置数字、垂直分割等时,如何处理80个字符的指示?


当前回答

我喜欢:

highlight ColorColumn ctermbg=gray
set colorcolumn=80

其他回答

短:

match ErrorMsg '\%>80v.\+'

新版本的vim允许:set numberwidth=x value,它设置行号显示的宽度。我不怎么使用折叠等,所以我不知道这个。但是,控制台应用程序无法绘制一条细竖线。GVim可能允许这样做(我不使用它,所以不能在那里评论)。

恐怕你已经在解集上加上了约束条件,只剩下一个空集。

使用:set textwidth=80将解决你提到的所有问题,除了你不容易看到行数限制。如果您:设置标尺,您将启用状态栏上的x,y位置显示,您可以使用它来查看您处于哪一列。

除此之外,我不知道该跟你说什么。很遗憾丢失了数字列,折叠列和分割,因为你必须:set columns=80。

从vim 7.3开始,您可以使用set colorcolumn=80(简称set cc=80)。

由于早期版本不支持这一点,我的.vimrc使用:

if exists('+colorcolumn')
  set colorcolumn=80
else
  au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
endif

另请参阅有关colorcolumn选项的在线文档。

使用Set colorcolumn设置列行

set autoindent                                                                  
set smartindent                                                                 
set nowrap                                                                      
set hlsearch                                                                    
set tabstop=4                                                                   
set shiftwidth=4                                                                
syntax on                                                                       
set colorcolumn=80