
Я пытаюсь переназначить клавиши Nerdtree так, чтобы <cr>
открывался файл, но курсор оставался в окне Nerdtree. Nerdtree имеет эту возможность по умолчанию и может быть вызвана с помощью g + o
сопоставления клавиш. Мне нужно это сопоставление только в Nerdtree.
Насколько я понял из документации Nerdtree, функции, которые вызывает это отображение, являются NERDTree-go
сокращением для'g' + NERDTreeMapActivateNode
Вот что я попробовал сделать в своем vim rc, используя документацию NerdTree и решения, предложенные для аналогичных вопросов.
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
Также есть метод api, который, как мне кажется, должен работать, но а) кажется, это должно быть легко сделать с помощью простого переназначения и б) я не могу понять, как его настроить. Я дошел до того, чтобы загрузить его, но у меня в файле vimscript было следующее, что вызвало ошибку:
NERDTreeAddKeyMap({
'key': '<cr>',
'callback': 'NERDTree-go',
'scope': 'FileNode',
'overide': '1'
})
решение1
NERDTree обычно настраивается через переменные; к сожалению, для . g:NERDTreeMap...
нет отдельной опции карты go
.:help NERDTree-go
Комбинация клавиш для этого сопоставления всегда «g» + NERDTreeMapActivateNode (см. NERDTree-o).
Итак, вам придется сделать переназначение самостоятельно. Чтобы применить это только к окну NERDTree, это должно быть буферно-локальное сопоставление, запускаемое при открытии боковой панели NERDTree:
:autocmd FileType nerdtree nmap <buffer> <CR> go