Я пытаюсь написать пару 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