Большинство программистов согласятся, что строчки кода должны быть короче 80 символов. Часто это просто хороший тон:
читаем Linux Kernel Coding Style (80) , Style Guide for Python code (79), Good Haskell Style (79),
Ruby Coding Conventions (80), Google C++ Style Guide (80)...Практический вопрос: а как в Vim увидеть, что строка стала длиннее 80 символов? Это может быть очень полезно,
если ширина окна больше 80. Простой и дубовый способ: 80| и курсор перемещается на 80-ю колонку.
Проверять так каждую строку или включить автоматический перенос (set tw=80) не всегда удобно.
Более элегантный выход - подсвечивать всё, что вылазит за 80-ю колонку. Ниже несколько рецептов.
Включить подсветку вручную:
:match ErrorMsg '\%>80v.\+'
Чтобы включать подсветку автоматически, каждый раз при открытии буфера, в ~/.vimrc помещаем:
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
Должно работать в Vim после 7.1.40. При этом последние 4 символа до 80-й колонки будут предупреждающе
подсвечиваться "поиском", а все, что после 80-й — "ошибкой".
Подвечивать только 81-ый символ и кривые пробелы/табы:
:match BadFormat /\s\+$\|\ \+\t\| \{8,}\|\%81v/
Другая проблема для исходного кода - концевые пробелы (trailing whitespace) и смешанные с пробелами табуляции.
Для их подсветки в ~/.vimrc можно добавить:
" highlight trailing spaces
au BufNewFile,BufRead * let b:mtrailingws=matchadd('ErrorMsg', '\s\+$', -1)
" highlight tabs between spaces
au BufNewFile,BufRead * let b:mtabbeforesp=matchadd('ErrorMsg', '\v(\t+)\ze( +)', -1)
au BufNewFile,BufRead * let b:mtabaftersp=matchadd('ErrorMsg', '\v( +)\zs(\t+)', -1)
Первое включает подсветку любых пробелов на конце строки.
Второе и третье подсвечивают табуляции, перед которыми или после которых есть пробелы.
Вместо "*" можно явно прописать типы файлов, для которых это должно работать.
URL: http://sovety.blogspot.com/2009/05/show-lines-longer-than-80... http://sovety.blogspot.com/2009/05/highlight-trailing-whites...
Обсуждается: https://www.opennet.ru/tips/info/2073.shtml