Vim NERDTree | Reasignar ''ir' | abrir el archivo pero permanecer en la ventana de NerdTree

Vim NERDTree | Reasignar ''ir' | abrir el archivo pero permanecer en la ventana de NerdTree

Estoy intentando reasignar las claves de Nerdtree para <cr>abrir un archivo pero el cursor permanece en la ventana de nerdtree. Nerdtree tiene esta capacidad de forma predeterminada y se puede activar con la g + oasignación de teclas. Quiero este mapeo solo cuando estoy en Nerdtree.

Por lo que entiendo de los documentos de Nerdtree, las funciones que llama este mapeo son NERDTree-golas que son una abreviatura de'g' + NERDTreeMapActivateNode

Esto es lo que probé en mi vim rc a partir de una combinación de documentos de NerdTree y de soluciones planteadas para preguntas similares.

let NERDTree-go=<cr>

nnoremap <CR> :call nerdtree#ui_glue#invokeKeyMap("go")<CR>

nnoremap <CR> :call nerdtree#invokeKeyMap("go")

let g NERDTreeMapActivateNode = <cr>

let g NERDTree-go

También hay un método API que creo que debería funcionar, pero a) parece que debería ser fácil de hacer con una simple reasignación yb) no sé cómo configurarlo. Llegué a cargarlo, pero tenía lo siguiente en el archivo vimscript que provocó un error:

NERDTreeAddKeyMap({
  'key': '<cr>',
  'callback': 'NERDTree-go',
  'scope': 'FileNode',
  'overide': '1'
})

Respuesta1

NERDTree normalmente se configura mediante g:NERDTreeMap...variables; Desafortunadamente, no existe una opción de mapa independiente para go. De :help NERDTree-go:

La combinación de teclas para este mapeo es siempre "g" + NERDTreeMapActivateNode (ver NERDTree-o).

Por lo tanto, debes realizar la reasignación tú mismo. Para aplicar esto solo a la ventana de NERDTree, debe ser un mapeo local del búfer, que se activa al abrir la barra lateral de NERDTree:

:autocmd FileType nerdtree nmap <buffer> <CR> go

información relacionada