Vim 80 column layout concerns
The way I do 80-column indication in Vim seems incorrect:set columns=80
.
At times I also set textwidth
, but I want to be able to see and anticipate line overflow with the set columns
alternative.
This has some unfortunate side effects:
- I can't
set number
for fear of splitting between files that have different orders of line numbers; i.e. < 100 line files and >= 100 line files will require two differentset columns
values because of the extra column used for the additional digit display. - I also start new (g)Vim sessions instead of splitting windows vertically. This is because
vsplit
forces me toset columns
every time I open or close a pane, so starting a new session is less hassle.
How do you handle the 80-character indication when you want to set numbers
, vertically split, etc.?
Solution 1:
As of vim 7.3, you can use set colorcolumn=80
(set cc=80
for short).
Since earlier versions do not support this, my .vimrc
uses instead:
if exists('+colorcolumn')
set colorcolumn=80
else
au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
endif
See also the online documentation on the colorcolumn
option.
Solution 2:
I have this set up in my .vimrc:
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/
This highlights the background in a subtle red for text that goes over the 80 column limit (subtle in GUI mode, anyway - in terminal mode it's less so).
Solution 3:
Shorter way:
match ErrorMsg '\%>80v.\+'
Solution 4:
I prefer:
highlight ColorColumn ctermbg=gray
set colorcolumn=80
Solution 5:
Simon Howard's answer is great. But /\%81v.\+/
fails to highlight tabs that exceed column 81 . So I did a little tweak, based on the stuff I found on VIM wiki and HS's choice of colors above:
highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%>80v.\+/
And now VIM will highlight anything that exceeds column 80.