¿Cómo abro y cierro NERDTree (alternar la vista NERDTree) con solo presionar una tecla?

21

A veces, durante mi flujo de trabajo, es posible que desee abrir / buscar un archivo sobre la marcha. Me gustaría asignar una sola tecla (digamos F6) para abrir y cerrar NERDTree (es decir, quiero alternar la vista NERDTree). Además, me gustaría que NERDTree muestre archivos y carpetas ocultos en su vista activada y también me gustaría que se cierre automáticamente cuando abro un archivo para editarlo si es posible. Gracias !

malvada patata
fuente
1
¡Hola, bienvenido al sitio! Tenga en cuenta que es mejor hacer varias preguntas en lugar de una con puntos diferentes. es decir, aquí podría hacer otra pregunta con respecto a los archivos y carpetas ocultos, porque la pregunta principal es definitivamente sobre la palanca (para la que ya recibió una respuesta). Además, no olvide leer la documentación del complemento y pasar horas :h;)
nobe4

Respuestas:

29

En su vimrccomplemento

nmap <F6> :NERDTreeToggle<CR>

¿Dónde <F6>está la clave que desea asignar?

Atropo
fuente
Funciona muy bien, pero ¿cómo puedo mostrar archivos y carpetas ocultos al mismo tiempo?
evil_potato
3
@evil_potato shift + ialternará los archivos ocultos. Si desea establecer como comportamiento predeterminado, agregue let NERDTreeShowHidden=1a su.vimrc
Atropo
3
@evil_potato También se cerrará automáticamente cuando abra un archivo para editarlo, agréguelo let NERDTreeQuitOnOpen=1a su.vimrc
dNitro
9

Para abrir NerdTree:

:NERDTreeFocus

Para cambiar entre nerdtree y el archivo de ventanas abiertas:

ctrl + ww (double w)

o

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

Para cerrar NerdTree (en la ventana nerdtree):

:q
Ardi Nusawan
fuente
3

Esto haría exactamente lo que ha pedido:

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

Si desea cerrar la ventana NERDTree, asegúrese de estar dentro del menú NERDTree. Puede cambiar las ventanas usando y ctrl+wluego escribir :qpara cerrar la ventana NERDTree para que quede con la ventana para editar su código.

philip
fuente
Esto es exactamente lo que estaba buscando, pero ¿qué hay de abrirlo nuevamente? ¿Necesito asignar otra tecla o hay un acceso directo nativo que abrirá NERDTree nuevamente?
Deesbek
0

La siguiente función rastrea las memorias intermedias abiertas y las llamadas Lexplorecorrespondientes Agréguelo a su .vimrcy elija su clave de mapeo.

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
fuente
44
¿Podría explicar cómo es mejor que el comando NERDTreeToggleque viene con NerdTree?
statox