Как установить цвет фона только для активного окна Vim?

16

Небольшая, но визуально приятная функция и немного улучшающая удобство использования, я бы хотел, чтобы Vim использовал другой цвет фона для активного окна.

Вот эскиз того, что я после:

введите описание изображения здесь

Обычно у этого vim весь фон будет черным, но если бы только у активного окна был свой цвет, чтобы привлечь внимание пользователя. Выделение только строки состояния недостаточно!

unperson325680
источник

Ответы:

8

Гептит, спасибо за идею.

Я просто заменяю WinEnter и WinLeave autocmd для добавления / удаления номеров строк перед каждой строкой:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

Теперь более стильно отслеживать, какое окно активно.

t0d0r
источник
Это здорово. Жаль, что мне не нравятся номера строк, поэтому это слишком неэстетично.
unperson325680
3

Группами выделения, которые управляют цветом фона по умолчанию, являются « Normal» и « NonText». К сожалению, это «глобальные» моменты, которые нельзя «локализовать» для каждого окна.

Тем не менее, вот действительно уродливый грязный пример:

augroup BgHighlight
    autocmd!
    выделите ActiveWindow guibg =
    lightblue autocmd WinEnter * вызов matchadd ('ActiveWindow', '. *', 10, 1682)
    autocmd WinLeave * вызов matchdelete (1682)
augroup END

doautocmd BgHighlight WinEnter -

Так как это всего лишь пример, вам придется изменить это в соответствии с вашими индивидуальными потребностями, например, добавив выделение ctermbg = ... вместе с guibg = ...

Недостаток заключается в том, что при этом будет выделен только фон существующего текста в файлах, а не вся строка / окно. (Как я уже сказал, уродливый и грязный.)

Heptite
источник
Хорошее мышление, но шаблон соответствует .*только тексту файла; ничего от остального фона. Кроме того, у меня только это работает в терминале с ctermbgсобственностью. Странно ...
unperson325680
Извините, мне следовало быть более ясным в своем ответе. Я отредактировал это.
Гептит