Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim syntax coloring: How do I highlight long lines only?

I would like vim to color "long" lines for me. Using 80 columns as an example, I would like to highlight lines that exceed that length. Here is roughly what I think the .vimrc file should contain, although it (1) doesn't work, and (2) uses Perl's regex syntax to illustrate my point, because I don't know Vim's well enough:

...
highlight Excess ctermbg=0
au Syntax * syn match Excess /.{80,}$/
...

This (in my mind at least) should mark lines that exceed 80 columns. What I would ideally like is the ability to color only the part of the line that exceeds 80 columns, so if a line is 85 columns, then the 81st through the 85th columns would be highlighted.

I'm sure Vim can do this, just not with me at the helm.

like image 564
Paul Beckingham Avatar asked Dec 27 '08 16:12

Paul Beckingham


2 Answers

I needed the autocomand to work for me:

augroup vimrc_autocmds
  autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#111111
  autocmd BufEnter * match OverLength /\%75v.*/
augroup END

Also like the idea of using 75 if you are aiming at 80 columns in average.

Taken from:

http://blog.ezyang.com/2010/03/vim-textwidth/

Possible reason why it fails without BufEnter: highlight + match can only be used once. Multiple usage means that old ones are overridden. How to add multiple highlights


I have this in my vimrc.
I found it here: Vim 80 column layout concerns

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%81v.*/

You might want to adjust the colors to your preferences.

like image 45
HS. Avatar answered Oct 01 '22 00:10

HS.