Comment ouvrir et fermer NERDTree (basculer la vue NERDTree) en appuyant sur une seule touche?

21

Parfois, pendant mon flux de travail, je pourrais vouloir ouvrir / rechercher un fichier lors de vos déplacements. Je voudrais mapper une seule clé (disons F6) pour ouvrir et fermer NERDTree (c'est-à-dire que je veux basculer la vue NERDTree). De plus, j'aimerais que NERDTree affiche les fichiers et dossiers cachés dans sa vue basculée et je voudrais également qu'il se ferme automatiquement lorsque j'ouvre un fichier pour le modifier si cela est possible. Merci !

evil_potato
la source
1
Salut, bienvenue sur le site! N'oubliez pas qu'il est préférable de poser plusieurs questions au lieu d'une avec des points différents. c'est-à-dire que vous pouvez ici poser une autre question concernant les fichiers et dossiers cachés, car la question principale concerne définitivement la bascule (pour laquelle vous avez déjà obtenu une réponse). N'oubliez pas non plus de lire la documentation du plugin et d'y passer des heures :h;)
nobe4

Réponses:

29

Dans votre vimrcannonce

nmap <F6> :NERDTreeToggle<CR>

<F6>est la clé que vous souhaitez mapper.

Atropo
la source
Fonctionne très bien, mais comment afficher les fichiers et dossiers cachés en même temps?
evil_potato
3
@evil_potato shift + ibasculera les fichiers cachés. Si vous souhaitez définir comme comportement par défaut, ajoutez let NERDTreeShowHidden=1à votre.vimrc
Atropo
3
@evil_potato Aussi pour se fermer automatiquement lors de l'ouverture d'un fichier à éditer ajouter let NERDTreeQuitOnOpen=1à votre.vimrc
dNitro
9

Pour ouvrir NerdTree:

:NERDTreeFocus

Pour basculer entre nerdtree et ouvrir des fenêtres de fichiers:

ctrl + ww (double w)

ou

ctrl + w + (h/j/k/l)

Pour fermer NerdTree (dans la fenêtre nerdtree):

:q
Ardi Nusawan
la source
3

Cela ferait exactement ce que vous avez demandé:

nnoremap <silent> <expr> <F6> g:NERDTree.IsOpen() ? "\:NERDTreeClose<CR>" : bufexists(expand('%')) ? "\:NERDTreeFind<CR>" : "\:NERDTree<CR>"
AdUki
la source
1

Si vous souhaitez fermer la fenêtre NERDTree, assurez-vous que vous êtes dans le menu NERDTree. Vous pouvez changer de fenêtre en utilisant ctrl+wpuis tapez :qpour fermer la fenêtre NERDTree afin que vous restiez avec la fenêtre pour éditer votre code.

Philippe
la source
C'est exactement ce que je cherchais, mais qu'en est-il de l'ouvrir à nouveau, dois-je mapper une autre clé ou existe-t-il un raccourci natif qui ouvrira à nouveau NERDTree?
Deesbek
0

La fonction suivante suit les tampons netrw ouverts et appelle en Lexploreconséquence. Ajoutez-le à votre .vimrcet choisissez votre clé de mappage.

let g:NetrwIsOpen=0

function! ToggleNetrw()
    if g:NetrwIsOpen
        let i = bufnr("$")
        while (i >= 1)
            if (getbufvar(i, "&filetype") == "netrw")
                silent exe "bwipeout " . i 
            endif
            let i-=1
        endwhile
        let g:NetrwIsOpen=0
    else
        let g:NetrwIsOpen=1
        silent Lexplore
    endif
endfunction

noremap <silent> <F2> :call ToggleNetrw()<CR>
Fabijan Bajo
la source
4
Pourriez-vous expliquer en quoi c'est mieux que la commande NERDTreeTogglefournie avec NerdTree?
statox