Cómo personalizar el comportamiento de NERDTree

Recientemente agregué NERDTree y NERDTreeTabs a mi configuración de vim y estoy muy feliz por eso.

Sin embargo, quería configurarlo un poco más y tener el siguiente comportamiento:

Ctrl+Unidades:

  • Si está dentro del NERDTree, no haga nada.

  • Si está dentro del archivo editado, vaya al NERDTree abierto, abriendo uno primero si no hay ninguno presente. supongo NERDTreeTabsToggle debería usarse, pero para usarlo, debo poder detectar si un NERDTree ya está abierto, no cerrarlo "alternando".

Ctrl+Derecha:

  • Si está dentro de NERDTree, regrese al archivo editado sin cerrar NERDTree. (Al igual que lo que Ctrl-w, Derecha haría.)

  • Si está dentro del archivo editado, oculte/cierre el NERDTree.

Sin embargo, mis habilidades con el script de Vim son demasiado bajas para obtener un resultado satisfactorio. Por ejemplo, no puedo averiguar cómo verificar cuál es la ventana activa actual o cómo escribir las declaraciones condicionales apropiadas.

Puede alguien ayudarme con eso ?

Gracias por su atención.

preguntado el 04 de julio de 12 a las 09:07

1 Respuestas

Si finalmente encontró una manera.

Edité el nerdtree_plugin/vim-nerdtree-tabs.vim archivo, agregando estas funciones:

" === Stepped Open/Close functions ===
" focus the NERDTree view, creating one first if none is present
fun! s:NERDTreeSteppedOpen()
  if !s:IsCurrentWindowNERDTree()
    if s:IsNERDTreeOpenInCurrentTab()
      call s:NERDTreeFocus()
    else
      call s:NERDTreeMirrorOrCreate()
    endif
  endif
endfun

" unfocus the NERDTree view or closes it if it hadn't had focus at the time of
" the call
fun! s:NERDTreeSteppedClose()
  if s:IsCurrentWindowNERDTree()
    call s:NERDTreeUnfocus()
  else
    let l:nerdtree_open = s:IsNERDTreeOpenInCurrentTab()

    if l:nerdtree_open
      silent NERDTreeClose
    endif
  endif
endfun

También hice un solicitud de extracción al autor para preguntarle si quiere agregar estas funciones aguas arriba.

El autor agregó mi solicitud de extracción al repositorio principal, por lo que con el próximo lanzamiento, puede llamar a las funciones directamente.

Espero que ayude a la gente.

Respondido 05 Jul 12, 08:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.