1

Я пытаюсь написать пару Vim autocmd для включения / выключения опции при входе / выходе из окна браузера Netrw (через :Explore :Vexplore и т.д.). Я открыл одно такое окно и запустил :echo bufname('%') , который показал NetrwTreeListing 1 в качестве имени буфера проводника. Поэтому я попытался написать свои автокоманды так,

autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine

но они не срабатывают. Я пытался заменить NetrwTreeListing* на Netrw* , а BufEnter на WinEnter но не могу заставить его работать. Что мне здесь не хватает?

Редактировать: Может быть, это связано. Выполнение :echo bufname('%') возвращает NetrwTreeListing 1 если Netrw настроен на просмотр в "дереве" (let g:netrw_liststyle=3). В противном случае он возвращает путь к текущему каталогу. Тем не менее, я пытаюсь запустить мой autocmd с установленным параметром "tree", поэтому похоже, что он должен работать.

Финал: Спасибо Гарион за отличный ответ. Он хорошо сочетается с другим набором автокоманд, с которыми я столкнулся:

autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline

1 ответ1

2

Кажется, они работают:

au FileType netrw hi CursorLine gui=underline
au FileType netrw au BufEnter <buffer> hi CursorLine gui=underline
au FileType netrw au BufLeave <buffer> hi clear CursorLine

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .