Выделите ненужные места в Vim ... кроме как в справочных буферах - PullRequest
0 голосов
/ 07 октября 2011

Я использую эти строки в моем файле _vimrc, чтобы выделить первые пробелы, которые включают пробелы.

highlight ExtraWhitespace ctermbg=darkgreen guibg=darkcyan
autocmd BufWinEnter * match ExtraWhitespace /^\s* \s*\|\s\+$

Итак, в большинстве случаев это работает нормально. За исключением справочных буферов, где он выделяет много отступов из файлов справки. Я нахожу это раздражающим, поэтому я попробовал это как обходной путь:

autocmd FileType help  highlight clear ExtraWhitespace

Но, к сожалению, как только открывается буфер справки, кажется, что подсветка во всех моих буферах исчезает. Есть идеи как это улучшить? Спасибо!

Ответы [ 3 ]

2 голосов
/ 07 октября 2011

Кажется, это работает:

highlight ExtraWhitespace ctermbg=darkgreen guibg=darkcyan
autocmd BufEnter * if &ft != 'help' | match ExtraWhitespace /\s\+$/ | endif
autocmd BufEnter * if &ft == 'help' | match none /\s\+$/ | endif

[править] Приведенный выше код работает для конечных пробелов, поскольку мой Vim не может понять ваш шаблон.Так что просто :%s/ubstitute шаблон соответствует вашим потребностям.

1 голос
/ 07 октября 2011

Если вам нужны только пробельные ошибки для файлов C / C ++, вы всегда можете использовать:

let c_space_errors=1

Есть и другие языки, которые имеют аналогичную поддержку.

В худшем случае, если вам это нужно для других типов файлов, вы всегда можете переключить тип файла на C и исправить ошибки.

0 голосов
/ 07 октября 2011

Изменить автокоманду, отключив пользовательскую подсветку для буферов справки, следующим образом.

:autocmd FileType help match none
...