Lorsque vous utilisez le plug-in NERDTree, le comportement par défaut consiste à ouvrir un nouveau fichier et à garder le tampon NERDTree ouvert. Ce que je veux faire est de conserver ce comportement par défaut mais aussi de le remplacer quand je le souhaite pour que le tampon NERDTree soit fermé après avoir ouvert un fichier.
Je sais que je peux utiliser let NERDTreeQuitOnOpen=1
pour fermer automatiquement le tampon NERDTree lorsque j'ouvre un nouveau fichier mais cette option remplace totalement le comportement par défaut (ce qui n'est pas ce que je veux).
Idéalement, j'aimerais savoir s'il existe une fonction intégrée dans NERDTree pour faire ce que je veux. (J'ai cherché mais je n'ai rien trouvé de tel, donc je suppose que cela n'existe pas réellement)
Et si ça n'existe pas, j'avais deux idées:
La première consiste à créer une fonction qui serait définie
NERDTreeQuitOnOpen
sur1
, ouvrir le fichier, puis définir à nouveauNERDTreeQuitOnOpen
sur0
.La seconde consiste à créer le mappage suivant:
map d<CR> <CR> :NERDTree <CR> :bd<CR>
qui ouvre le fichier (en premier<CR>
), retourne au tampon NERDTree (:NERDTree <CR>
) et ferme ce tampon (:bd <CR>
). Je devrais l'améliorer pour que le mappage n'existe que dans le tampon NERDTree, mais je pense que c'est une solution assez moche et je pense qu'elle peut être améliorée.
Quelle idée serait la meilleure et pourquoi? Ou existe-t-il une option encore meilleure?
la source
map d<cr> <cr>:NERDTreeClose<cr>
pour la cartographie?Réponses:
Comme la question ne semble pas générer beaucoup de réponses, je vais juste y répondre avec la suggestion de @muru, ce que j'ai utilisé pendant une semaine avant de passer à l'explorateur netrw. (Bien sûr, si une meilleure réponse est proposée, je marquerai volontiers la mienne comme acceptée et j'accepterai la nouvelle)
L'idée est d'utiliser la cartographie suivante:
Ce qui ouvre le fichier comme d'habitude, puis appelle la fonction qui ferme le tampon NERDTree, peu importe où se trouve le curseur.
EDIT: Je suis récemment revenu à NERDTree et j'ai retravaillé ma solution: le mappage que j'ai suggéré auparavant fonctionnait mais comme il existait dans chaque tampon, j'ai dû appuyer ddeux fois sur chaque fois que je voulais supprimer quelque chose qui était assez ennuyeux. (Peut-être que j'aurais pu changer les
timeout
paramètres mais j'aime la façon dont il est actuellement défini pour moi, je ne voulais pas non plus le mapper sur une autre combinaison de touches).J'ai donc remplacé ma première solution par les lignes suivantes à ma
.vimrc
:De cette façon, le mappage est créé uniquement dans les
NERDTree
tampons et il ne perturbe pas mon flux de travail dans les autres tampons.la source