我试图找到一种方法来拥有可以切换 NERDTree 的正常模式映射,但是在切换时,告诉 NERDTree 查找当前文件。
我知道NERDTreeToggleand NERDTreeFind,我想要做的基本上是这两个命令的组合。
这是我的用例:
<C-\>NERDTree 将打开当前文件。<C-\>,NERDTree 将关闭。第一个答案对我不起作用,所以我想出了这个:
function MyNerdToggle()
if &filetype == 'nerdtree'
:NERDTreeToggle
else
:NERDTreeFind
endif
endfunction
nnoremap <C-\> :call MyNerdToggle()<CR>
Run Code Online (Sandbox Code Playgroud)
这将完全符合您的要求:
nnoremap <silent> <expr> <C-\> g:NERDTree.IsOpen() ? "\:NERDTreeClose<CR>" : bufexists(expand('%')) ? "\:NERDTreeFind<CR>" : "\:NERDTree<CR>"
Run Code Online (Sandbox Code Playgroud)
这是:NERDTreeToggle您实际需要的命令,只需添加%
nnoremap <C-\> :NERDTreeToggle %<CR>
Run Code Online (Sandbox Code Playgroud)
在提供给 NERD 树的帮助中,您可以发现该:NERDTree命令取决于给定的参数,并且如果:NERDTreeToggle该选项卡不存在 NERD 树,则该命令的作用与该命令相同:NERDTree。