Vim NERDTree | Remap '<cr>«идти» | открыть файл, но остаться в окне NerdTree </cr>

736
patnz

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

1 ответ на вопрос

2
Ingo Karkat

NERDTree обычно настраивается через g:NERDTreeMap...переменные; к сожалению, нет отдельной опции для карты go. От :help NERDTree-go:

Ключевым списком для этого сопоставления всегда является «g» + NERDTreeMapActivateNode (см. NERDTree-o).

Итак, вы должны сделать переназначение самостоятельно. Чтобы применить это только к окну NERDTree, это должно быть локальное отображение буфера, запускаемое при открытии боковой панели NERDTree:

:autocmd FileType nerdtree nmap <buffer> <CR> go 
Блестяще, спасибо большое. patnz 9 лет назад 0