Come posso aprire e chiudere NERDTree (attiva / disattiva la vista NERDTree) usando una singola sequenza di tasti?


21

A volte durante il mio flusso di lavoro, potrei voler aprire / cercare un file in movimento. Vorrei mappare un singolo tasto (diciamo F6) per aprire e chiudere NERDTree (ad es. Voglio attivare la vista NERDTree). Inoltre, vorrei che NERDTree mostrasse i file e le cartelle nascosti nella sua vista alternata e vorrei anche che si chiudesse automaticamente quando apro un file per la modifica, se possibile. Grazie !


1
Ciao, benvenuto nel sito! Tieni presente che è meglio porre più domande anziché una con punti diversi. cioè qui potresti fare un'altra domanda riguardo ai file e alle cartelle nascosti, perché la domanda principale è sicuramente sull'interruttore (per il quale hai già ottenuto una risposta). Inoltre, non dimenticare di leggere la documentazione del plug-in e di passare ore :h;)
nobe4,

Risposte:


29

Nel tuo vimrcaggiungi

nmap <F6> :NERDTreeToggle<CR>

dov'è <F6>la chiave che si desidera mappare.


Funziona alla grande, ma come faccio a mostrare contemporaneamente file e cartelle nascosti?
evil_potato,

3
@evil_potato commuta shift + ii file nascosti. Se vuoi impostare come comportamento predefinito aggiungi let NERDTreeShowHidden=1al tuo.vimrc
Atropo

3
@evil_potato Anche per chiudere automaticamente quando apri un file per la modifica aggiungi let NERDTreeQuitOnOpen=1al tuo.vimrc
dNitro

9

Per aprire NerdTree:

:NERDTreeFocus

Per alternare tra nerdtree e file aperto windows:

ctrl + ww (double w)

o

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

Per chiudere NerdTree (nella finestra di nerdtree):

:q

3

Questo farebbe esattamente quello che hai chiesto:

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

1

Se vuoi chiudere la finestra NERDTree assicurati di essere all'interno del menu NERDTree. Puoi cambiare finestra usando ctrl+wquindi digitare :qper chiudere la finestra di NERDTree in modo da rimanere con la finestra per modificare il tuo codice.


Questo è esattamente quello che stavo cercando, ma per riaprirlo, devo mappare un'altra chiave o c'è un collegamento nativo che aprirà di nuovo NERDTree?
Deesbek,

0

La seguente funzione tiene traccia dei buffer netrw aperti e chiama di Lexploreconseguenza. Aggiungilo al tuo .vimrce scegli la tua chiave di mappatura.

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
Potresti spiegare come è meglio del comando NERDTreeTogglefornito con NerdTree?
statox
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.