Як встановити колір фону лише для активного вікна Vim?


16

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

Ось ескіз того, що я маю після:

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

Зазвичай цей vim мав би все чорне тло, але якби тільки активне вікно мало свій колір, щоб виділити увагу користувача. Виділення лише лише панелі стану недостатньо!

Відповіді:


8

Гептите, дякую за ідею.

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

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

Тепер більш стильно відстежувати, яке вікно активне.


Це круто. Шкода, що я не маю фантазійних номерів рядків, тому це занадто неестетично.
nperson325681

3

Групи виділення, які керують кольором фону за замовчуванням, є " Normal" і " NonText". На жаль, це "глобальні" моменти, і їх не можна "локалізувати" на основі кожного вікна.

Однак ось справді некрасивий химерний приклад:

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

doautocmd BgHighlight WinEnter -

Оскільки це лише приклад, вам доведеться змінити це відповідно до ваших індивідуальних потреб, наприклад, додати виділення ctermbg = ... разом із guibg = ...

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


Гарне мислення, але візерунок .*відповідає лише тексту файлу; нічого з решти фону. Крім того, я отримав це лише у робочому терміналі з ctermbgмайном. Дивно ...
nperson325681

Вибачте, я мав би бути більш чітким у своїй відповіді. Я це відредагував.
Гептит
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.