Другая зараза для исходного кода — концевые пробелы (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)
* можно явно прописать типы файлов, для которых это должно работать, но единственное место, где мне это не нужно — это буферы со справкой. Поэтому у меня сделано сейчас так:" disable matches in help buffersВыглядит это так:
au BufEnter,FileType help call clearmatches()

Подобным же целям служат, но иначе работают, скрипт spacehi.vim и рецепт #396 (для подсветки пробелов).



Мне удобней другой вариант - автоматическое удаление trailing whitespaces и автоматическая замена табов на пробелы. В vim не настраивал ни разу такое, но вот в Geany такая функциональность есть по умолчанию
ОтветитьУдалитьВ vim тоже можно удалять и заменять автоматически:
ОтветитьУдалить%s/\s\+$// — удалить концевые пробелы
опция expandtab — заменять табуляции при наборе
команда retab — замена уже набранных табуляций в соответствии с текущими настройками
Можно поместить в автокоманды на сохранение, но я предпочитаю вручную. А подсветку сделал, чтобы, когда открываешь чужой файл, сразу было видно, нормально он набран, или с сюрпризами.
Пасиб за фишку, полезно :)
ОтветитьУдалить