Devido ao desempenho, eu desativar o cursorline
e cursorcolumn
no vim. No entanto, no caso de pular uma Quickfix
janela, é difícil localizar o cursor no arquivo. Então, eu gostaria de ativar cursorline
e cursorcolumn
automaticamente depois que uma Quickfix
janela for aberta (por qualquer ação).
Agora eu tenho a solução usando o Autocmd
seguinte:
autocmd BufferEnter quickfix :bufdo set cursorline cursorcolumn
Essa é a solução adequada? Alguma ideia melhor?
Muito obrigado!
vimrc
autocmd
quickfix
cursorline
tamlok
fonte
fonte
:h QuickFixCmdPost
), mas não tenho certeza de que seria melhor.Ack
,vimgrep
e assim por diante. Mas não funciona no caso de:copen
. Solução bastante agradável!:h QuickFixCmdPre
ele contém uma lista dos comandos que acionam o eventoQuickFixCmdPre
(e, portanto, o eventoQuickFixCmdPost
) e, de fato,:copen
não é um deles. Assim, o comportamento que você está enfrentando é normal, mas eu não sei como fazê-lo trabalhar com:copen
...Respostas:
Crie o arquivo
~/.vim/ftplugin/qf.vim
(ou$HOME/vimfiles/ftplugin/qf.vim
se você estiver no Windows) com o seguinte conteúdo:Os arquivos ftplugin são executados sempre que o tipo de arquivo é definido para um determinado buffer de arquivo (a janela de correção rápida e localização possui o tipo de arquivo
qf
).Usar os arquivos de plug-in de tipo de arquivo em vez de autocmds evita sobrecarregar seu vimrc. Você pode encontrar mais detalhes no
:help ftplugin-name
,:help 43
e Vim FAQ 26,8 .Editar:
A verificação
b:did_ftplugin
é necessária para permitir desativá-lo, se necessário, e evitar carregá-lo duas vezes (consulte:help ftplugin
).O
let b:did_ftplugin = 1
arquivo é omitido porque o objetivo desse arquivo é incrementar o plug-in de tipo de arquivo padrão para o quickfix, e não substituir. Se essa linha foi adicionada, as configurações em$VIMRUNTIME/ftplugin/qf.vim
seriam ignoradas, conforme explicado em:help ftplugin-overrule
.fonte
b:did_ftplugin
significa? Seu script parece não alterá-lo em nenhum lugar. Eu tentei no meu vimrc e funciona!b:did_ftplugin
peça.