1

Я хочу использовать клавишу со стрелкой вправо, чтобы открыть узел в NERDtree. Я вижу, что есть NERDTreeAddKeyMap, но я слишком большой новичок в vimscript, чтобы знать, как правильно его вызывать. Я хочу, чтобы стрелка вправо вызывала activNode. Я сделал это, добавив эту строку в сам NERD_tree.vim:

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

но я хочу сделать это правильно в моем .vimrc

2 ответа2

0

Я думаю, что, за исключением ограничения в версии, которую я использую (4.2.0), следующее будет делать то, что вы хотите.

В mymapping.vim, в ~/.vimfiles/nerdtree_plugin/

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

Теперь, чтобы "Правильно" работало правильно, вам нужно отредактировать NERD_tree.vim в:

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

Изменить:

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

чтобы:

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

Старый код не делал специальной обработки для ключей сопоставления, которые не были <MiddleRelease>, <2-LeftMouse> или <LeftRelease>

0

:help NERDTreeAddKeyMap() покажет вам, как написать небольшой плагин для NERDTree. Поскольку вы вызываете встроенную функцию NERDTree, вам даже не нужна пользовательская функция.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .