Estes parecem funcionar:
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
Estou tentando escrever um par de autocmds do Vim para ativar / desativar uma opção ao entrar / sair de uma janela do navegador Netrw (via :Explore
, :Vexplore
, etc.). Eu abri uma dessas janelas e executei :echo bufname('%')
, que mostrou NetrwTreeListing 1
como o nome do buffer do explorador. Então eu tentei escrever meus autocommands assim,
autocmd BufEnter NetrwTreeListing* highlight CursorLine gui=underline
autocmd BufLeave NetrwTreeListing* highlight clear CursorLine
mas eles não são acionados. Tentei substituir NetrwTreeListing*
por Netrw*
e BufEnter
por WinEnter
, mas não consigo fazê-lo funcionar. O que estou perdendo aqui?
Editar : Talvez isso esteja relacionado. Executando :echo bufname('%')
retornando NetrwTreeListing 1
enquanto Netrw estiver definido para navegar em uma "árvore" ( let g:netrw_liststyle=3
). Caso contrário, retorna o caminho para o diretório atual. Ainda assim, estou tentando acionar meu autocmd com o conjunto de opções "tree", então parece que deve funcionar.
Final : Obrigado garyjohn pela excelente resposta. Ele combina bem com outro conjunto de autocommands que encontrei:
autocmd WinLeave * setlocal nocursorline
autocmd WinEnter,BufRead * setlocal cursorline
Tags vim