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

2

Estou tentando remapear as chaves Nerdtree para que <cr> abra um arquivo, mas o cursor permaneça na janela nerdtree. O Nerdtree tem esse recurso por padrão e pode ser acionado com o mapeamento de chave g + o . Eu quero esse mapeamento apenas quando em Nerdtree.

Pelo que entendi das documentações do Nerdtree, as funções que este mapeamento chama são NERDTree-go , que é uma abreviação de 'g' + NERDTreeMapActivateNode

Estes são o que eu tentei no meu vim rc a partir de uma combinação dos documentos do NerdTree e de soluções colocadas para perguntas 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

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

NERDTreeAddKeyMap({
  'key': '<cr>',
  'callback': 'NERDTree-go',
  'scope': 'FileNode',
  'overide': '1'
})
    
por patnz 29.05.2015 / 07:31

1 resposta

2

O NERDTree normalmente é configurado via g:NERDTreeMap... variables; infelizmente, não há uma opção de mapa separada para go . De :help NERDTree-go :

The key combo for this mapping is always "g" + NERDTreeMapActivateNode (see NERDTree-o).

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

:autocmd FileType nerdtree nmap <buffer> <CR> go
    
por 29.05.2015 / 10:11

Tags