Большинство программистов согласятся, что строчки кода должны быть короче 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)
Первое включает подсветку любых пробелов на конце строки.
Второе и третье подсвечивают табуляции, перед которыми или после которых есть пробелы.
Вместо "*" можно явно прописать типы файлов, для которых это должно работать.
|