Ao usar o plug-in NERDTree, o comportamento padrão é abrir um novo arquivo e manter o buffer NERDTree aberto. O que eu quero fazer é manter esse comportamento padrão, mas também substituí-lo quando desejar, para que o buffer NERDTree seja fechado após a abertura de um arquivo.
Eu sei que posso usar let NERDTreeQuitOnOpen=1
para fechar automaticamente o buffer NERDTree quando abro um novo arquivo, mas essa opção substitui totalmente o comportamento padrão (que não é o que eu quero).
Idealmente, eu gostaria de saber se existe um recurso interno no NERDTree para fazer o que eu quero. (Estive pesquisando, mas não encontrei nada assim, acho que não existe realmente)
E se isso não existir, eu tinha duas idéias:
O primeiro é criar uma função que definiria
NERDTreeQuitOnOpen
como1
, abra o arquivo e, em seguida, defina novamenteNERDTreeQuitOnOpen
como0
.O segundo é criar o seguinte mapeamento:
map d<CR> <CR> :NERDTree <CR> :bd<CR>
que abre o arquivo (primeiro<CR>
), volta ao buffer NERDTree (:NERDTree <CR>
) e fecha esse buffer (:bd <CR>
). Eu deveria aprimorá-lo para que o mapeamento só exista no buffer NERDTree, mas acho que é uma solução bastante feia e acho que pode ser melhorada.
Qual ideia seria a melhor e por quê? Ou existe uma opção ainda melhor?
fonte
map d<cr> <cr>:NERDTreeClose<cr>
para o mapeamento?Respostas:
Como a pergunta parece não gerar muita resposta, responderei com a sugestão do @muru, que é o que eu uso há uma semana antes de mudar para o netrw explorer. (É claro que, se surgir uma resposta melhor, eu desmarcarei com prazer o meu como aceito e aceito o novo)
A ideia é usar o seguinte mapeamento:
O que abre o arquivo normalmente, e depois chama a função que fecha o buffer NERDTree, não importa onde esteja o cursor.
EDIT: Recentemente, mudei de volta para o NERDTree e reformulei minha solução: o mapeamento que sugeri antes estava funcionando, mas como existia em todos os buffers, tive que pressionar dduas vezes cada vez que quis excluir algo que é bastante irritante. (Talvez eu possa ter alterado as
timeout
configurações, mas gosto da maneira como está definida atualmente para mim, também não queria mapeá-lo em outra combinação de teclas).Então substituí minha primeira solução pelas seguintes linhas na minha
.vimrc
:Dessa forma, o mapeamento é criado apenas nos
NERDTree
buffers e não interfere no meu fluxo de trabalho nos outros buffers.fonte