Wie öffne und schließe ich NERDTree (NERDTree-Ansicht umschalten) mit einem einzigen Tastendruck?

20

Manchmal möchte ich während meines Workflows unterwegs eine Datei öffnen / suchen. Ich möchte eine einzelne Taste (sagen Sie F6) zuordnen, um NERDTree zu öffnen und zu schließen (dh ich möchte die NERDTree-Ansicht umschalten). Außerdem möchte ich, dass NERDTree versteckte Dateien und Ordner in der umgeschalteten Ansicht anzeigt und diese automatisch schließt, wenn ich eine Datei zur Bearbeitung öffne, sofern dies möglich ist. Vielen Dank !

evil_potato
quelle
1
Hallo, willkommen auf der Seite! Bitte denken Sie daran, dass es besser ist, mehrere Fragen zu stellen, als eine mit unterschiedlichen Punkten. Hier könnten Sie also eine andere Frage zu den versteckten Dateien und Ordnern stellen, da sich die Hauptfrage definitiv auf das Umschalten bezieht (auf das Sie bereits eine Antwort erhalten haben). Vergessen Sie auch nicht, die Plugin-Dokumentation zu lesen und Stunden damit zu verbringen :h;)
nobe4

Antworten:

28

In Ihrem vimrchinzufügen

nmap <F6> :NERDTreeToggle<CR>

Wo <F6>ist der Schlüssel, den Sie zuordnen möchten?

Atropo
quelle
Funktioniert gut, aber wie zeige ich versteckte Dateien und Ordner gleichzeitig an?
evil_potato
3
@evil_potato schaltet shift + iversteckte Dateien um. Wenn Sie als Standardverhalten festlegen möchten, fügen Sie dies let NERDTreeShowHidden=1zu Ihrem.vimrc
Atropo
3
@evil_potato auch automatisch zu schließen , wenn eine Datei öffnen für die Bearbeitung von Add let NERDTreeQuitOnOpen=1zu Ihrem.vimrc
dNitro
9

So öffnen Sie NerdTree:

:NERDTreeFocus

So wechseln Sie zwischen Nerdtree- und Datei-geöffneten Fenstern:

ctrl + ww (double w)

oder

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

So schließen Sie NerdTree (im NerdTree-Fenster):

:q
Ardi Nusawan
quelle
3

Dies würde genau das tun, wonach Sie gefragt haben:

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

Wenn Sie das NERDTree-Fenster schließen möchten, vergewissern Sie sich, dass Sie sich im NERDTree-Menü befinden. Sie können zwischen Fenstern wechseln, indem Sie ctrl+wdann :qFolgendes eingeben, um das NERDTree-Fenster zu schließen, sodass Sie das Fenster zum Bearbeiten Ihres Codes behalten.

philip
quelle
Dies ist genau das, wonach ich gesucht habe, aber was ist mit dem erneuten Öffnen, muss ich einen anderen Schlüssel zuordnen oder gibt es eine native Verknüpfung, die NERDTree erneut öffnet?
Deesbek
0

Die folgende Funktion verfolgt das Öffnen von Zwischenspeichern und ruft Lexploreentsprechend auf. Fügen Sie es Ihrem hinzu .vimrcund wählen Sie Ihren Zuordnungsschlüssel.

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
quelle
4
Können Sie erklären, wie es besser ist als der Befehl, NERDTreeToggleder mit NerdTree geliefert wird?
statox