Automatiquement quitter vim si NERDTree est le seul tampon
J'ai la suite dans ma .vimrc:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open NERDTree by default
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
Donc,
% vim file.txt
ouvre NERDTree et se concentre le curseur dans la file.txt de la mémoire tampon. Je fais mes retouches, et a frappé :q sur le tampon, et je suis parti avec . . . NERDTree. C'est gênant.
Je pourrais utiliser :qa pour fermer tous les tampons, et de quitter vim, mais je suis habitué à l' :q trope. Alors je me demandais si il existe un moyen de détecter que la seule restante de la mémoire tampon est NERDTree, et "unifier" les deux tampons, aux fins de :q
Modifier
Demandez et vous recevrez: https://github.com/scrooloose/nerdtree/issues#issue/21
Vous devez vous connecter pour publier un commentaire.
Un script pour faire exactement ce qui a été posté sur le NERDTree question de la liste. La caisse question-21 sur GitHub pour nerdtree.
Ce qui conduit à la seule ligne de commande pour votre vimrc ici:
vim .
maintenant, qui est un peu gênant (juste insta-quitte maintenant).De mon vimrc, basé sur une version de janus repo.
Améliorations: aussi fermer si seulement un quickfix fenêtre de gauche.
Il utilise le
BufEnter
autocommand au lieu de cela, ce qui est nécessaire pour&bt
pour fonctionner correctement.Une idée dans le besoin de mise en œuvre:
Vous pouvez écrire une fonction qui, lorsqu'elle est appelée, vérifie si le seul tampon restant (ou peut-être le seul non-tampon, si vous préférez) est un NERDTree tampon et, si oui, supprime (ou tout simplement se ferme).
Alors un autocmd l'exécuter chaque fois qu'un tampon est supprimé, masqué /tout ce qui se passe réellement lorsque vous :q (il a honte de m'avouer que je ne suis pas entièrement sûr!).
Vous pourriez
:cabbrv q qa
mais je vous le déconseille parce que vous allez l'oublier lorsque vous voulez vraimentq
.J'aime pour ce faire:
cmap bq :bufdo q<CR>
pour fermer tous les tampons avec deux frappes de touches en mode de commande.@MrD réponse qui fonctionne bien pour moi, je suis en utilisant
vim
8.1 à partirbrew
sur macOS.