vim atalho NERDTree para uma função existente

1

Eu quero usar a tecla de seta para a direita para abrir um nó na NERDtree. Eu vejo que há NERDTreeAddKeyMap, mas eu sou muito newb vimscript para saber como invocá-lo corretamente. Eu quero seta para a direita para invocar activateNode. Eu fiz isso adicionando esta linha no próprio NERD_tree.vim:

exec "nnoremap <silent> <buffer> <Right> :call <SID>activateNode(0)<cr>"

mas eu quero fazer do jeito certo no meu .vimrc

    
por Ned Batchelder 09.04.2012 / 14:56

2 respostas

0

:help NERDTreeAddKeyMap() mostrará como escrever um pequeno plugin para o NERDTree. Porque você está chamando uma função NERDTree embutida, você nem precisa de uma custom.

    
por 09.04.2012 / 16:15
0

Acho que, salvo uma limitação na versão que estou usando (4.2.0), o seguinte fará o que você quiser.

Em um mymapping.vim, em ~ / .vimfiles / nerdtree_plugin /

" -*- vim -*-
call NERDTreeAddKeyMap({ 'key': "Right", 'scope': "Node", 'callback': "<SID>activateNode" })

Agora, para que o "Right" funcione corretamente, você terá que editar o NERD_tree.vim, em:

"FUNCTION: KeyMap.bind() {{{3
function! s:KeyMap.bind()

Alterar:

if mapkey =~? '^\([CM]-\|middlerelease\|2-leftmouse\|leftrelease\)'

para:

if mapkey =~? '^\([CM]-\|middlerelease\|2-leftmouse\|leftrelease\|right\)'

O código antigo não fazia tratamento especial para mapear chaves que não eram < MiddleRelease & gt ;, < 2-LeftMouse & gt ;, ou < LeftRelease >

    
por 20.04.2012 / 18:16

Tags