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 !


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.


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

3

Cela ferait exactement ce que vous avez demandé:

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

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.


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>

4
Pourriez-vous expliquer en quoi c'est mieux que la commande NERDTreeTogglefournie avec NerdTree?
statox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.