我正在尝试重新映射 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