Vim NERDTree | Remapear '' para 'ir' | abra o arquivo, mas permaneça na janela do NerdTree

Vim NERDTree | Remapear '' para 'ir' | abra o arquivo, mas permaneça na janela do NerdTree

Estou tentando remapear as teclas do Nerdtree para <cr>abrir um arquivo, mas o cursor permanece na janela do nerdtree. Nerdtree tem esse recurso por padrão e pode ser acionado com o g + omapeamento de teclas. Quero esse mapeamento apenas quando estiver no Nerdtree.

Pelo que entendi nos documentos do Nerdtree, as funções que esse mapeamento chama são NERDTree-gouma abreviação de'g' + NERDTreeMapActivateNode

Isto é o que eu tentei no meu vim rc a partir de uma combinação dos documentos do NerdTree e de soluções apresentadas para questões semelhantes.

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

Há também um método de API que acho que deveria funcionar, mas a) parece que deveria ser fácil de fazer com um simples remapeamento eb) não consigo descobrir como configurá-lo. Cheguei até carregá-lo, mas acabei de ter o seguinte no arquivo vimscript, o que causou um erro:

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

Responder1

O NERDTree normalmente é configurado através de g:NERDTreeMap...variáveis; infelizmente, não há opção de mapa separada para go. De :help NERDTree-go:

A combinação de teclas para este mapeamento é sempre "g" + NERDTreeMapActivateNode (consulte NERDTree-o).

Então, você mesmo tem que fazer o remapeamento. Para aplicar isso apenas à janela NERDTree, precisa ser um mapeamento buffer-local, acionado na abertura da barra lateral do NERDTree:

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

informação relacionada