Como posso disparar um autocmd do Vim ao entrar em uma janela do Netrw?

1

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
    
por ivan 04.01.2014 / 20:20

1 resposta

2

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
    
por 04.01.2014 / 22:43

Tags