Vim NERDTree | 重新映射'' 到 'go' | 打开文件但仍留在 NerdTree 窗口中

Vim NERDTree | 重新映射'' 到 '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 方法,我认为应该可以工作,但是 a) 似乎只需通过简单的重新映射就可以轻松完成,并且 b) 我不知道如何设置它。我已经加载了它,但我在 vimscript 文件中只有以下内容,这导致了错误:

NERDTreeAddKeyMap({
  'key': '<cr>',
  'callback': 'NERDTree-go',
  'scope': 'FileNode',
  'overide': '1'
})

答案1

NERDTree 通常通过变量进行配置g:NERDTreeMap...;不幸的是,没有单独的 map 选项go。来自:help NERDTree-go

此映射的关键组合始终是“g”+ NERDTreeMapActivateNode(参见 NERDTree-o)。

因此,您必须自己进行重新映射。要将其仅应用于 NERDTree 窗口,这需要是缓冲区本地映射,在打开 NERDTree 侧边栏时触发:

:autocmd FileType nerdtree nmap <buffer> <CR> go

相关内容