Выделите вкладки в vim, когда установлено расширение вкладки

Есть ли рецепт, чтобы vim выделял символы табуляции заданным цветом, но только, пока установлена ​​опция expandtab? Я знаю о 'listchars', но я хотел бы иметь возможность отличать «действительную вкладку» от «недопустимой вкладки».


person Mu Mind    schedule 08.11.2012    source источник
comment
Что делает вкладку действительной или недействительной?   -  person romainl    schedule 08.11.2012
comment
Недействительный, может быть, сильно сказано... Я имею в виду вкладку в файле, который не использует вкладки для отступов. То, как я использую expandtab, всегда соответствует настройкам отступа файла.   -  person Mu Mind    schedule 08.11.2012


Ответы (1)


Вы можете добавить собственный :match для символов табуляции на основе :autocmds, например:

autocmd WinEnter,VimEnter *
\   if &expandtab |
\       silent! call matchadd('Error', '\t',  10, 31337) |
\   else |
\       silent! call matchdelete(31337) |
\   endif

(Для простоты здесь используется жестко закодированный идентификатор.)

В качестве альтернативы вы можете использовать подключаемый модуль, например мой IndentConsistencyCop, который проверяет оба несогласованные отступы и несоответствия буфера и его настроек, а также по умолчанию выделяет неправильные строки. (На странице плагина есть ссылки на альтернативные плагины.)

person Ingo Karkat    schedule 08.11.2012