Используя концепцию кода ниже в VIM
Как сделать вкладки светло-серым фоном и пробелами синим фоном
" part of ~/.vimrc
" highlight tabs and trailing spaces
set listchars=tab:>-,trail:-
set list
Ответ 1
Если вы используете эти параметры в своем ~/.vimrc, вы наверняка прочитали :help 'list' и :help 'listchars', но из вашего вопроса это не совсем понятно, если вы заметили последние две строки :help 'listchars':
The "NonText" highlighting will be used for "eol", "extends" and
"precedes". "SpecialKey" for "nbsp", "tab" and "trail".
Вкладки и конечные пробелы используют одну и ту же группу подсветки, поэтому вы не сможете дать им разные цвета фона с этими группами выделения. Но вам не нужны разные цвета, потому что вы уже установили их для представления разными символами.
Ответ 2
Вы не можете, по крайней мере, не так просто, что на 100% правильно.
Как сказал @romainl, Vim предлагает только одну выделенную группу для всех типов listchar, представляющих символы, а именно: SpecialKey.
Обходная реализация @Kent имеет несколько недостатков:
Он работает только для первого/текущего окна; вам понадобится :autocmd, чтобы определить его для новых окон.
Он не учитывает, действительно ли 'list' установлено; привязка к его изменениям напрямую не возможна.
Он сжимает слоты :match; это можно предотвратить с помощью matchadd(), но его использование более сложное.
Итак, подумайте, действительно ли эта функция стоит того.