Vim NERDTree | Переназначить ''to 'go' | открыть файл, но остаться в окне NerdTree

Vim NERDTree | Переназначить ''to 'go' | открыть файл, но остаться в окне NerdTree

Я пытаюсь переназначить клавиши 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

Связанный контент