t是否可以通过按下或在 NERDTree中打开每个选项卡T中的 NERDTree,如果可以,如何?
7 回答
autocmd VimEnter * NERDTree
autocmd BufEnter * NERDTreeMirror
编辑:上面的命令似乎在 NERDTree 的缓冲区中打开了新选项卡。而是在下面的评论中使用wejrowski提到的这个:
autocmd BufWinEnter * NERDTreeMirror
我编写了一个 vim 插件来执行此操作,并在顶部添加了一些好东西(即保持所有树同步,确保有意义的选项卡标题 - 而不是像 'NERD_tree_1' 等标题)。
它在 Github 上:https ://github.com/jistr/vim-nerdtree-tabs
autocmd VimEnter * NERDTree
autocmd BufEnter * NERDTreeMirror
autocmd VimEnter * wincmd w
这个比 Dustin 的要好一点,因为它将光标直接放在您要编辑的文件上以便快速编辑。感谢dustin的原始示例^^
这可能不是最好的方法,但如果你编辑 plugin/NERDTree.vim 并改变它:
exec "nnoremap <silent> <buffer> ". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>"
对此:
exec "nnoremap <silent> <buffer> ". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>:NERDTree<cr>"
它将改变 NERDTree 视图中“t”的绑定,以首先打开文件,然后打开 NERDTree。请注意,NERDTree 视图不会保持同步。
怎么切换。
" in .vimrc
" NERDTree, Use F3 for toggle NERDTree
nmap <silent> <F3> :NERDTreeToggle<CR>
在 OSX 中,您只需按 fn-F3 即可切换 NERDTree。
更好的解决方案是仅在没有设置命令行参数时打开 NERDTree。
" Open NERDTree in new tabs and windows if no command line args set
autocmd VimEnter * if !argc() | NERDTree | endif
autocmd BufEnter * if !argc() | NERDTreeMirror | endif
git commit
例如,如果您执行 a或类似的操作,NERDTree 将无济于事。
这个问题其实在官方 Repository 的 Readme 文件中提到过,包括与自动打开 NERDTree 相关的三种情况:
vim启动时如何自动打开NERDTree?
将其粘贴到您的 vimrc 中:autocmd vimenter * NERDTree
如果没有指定文件,如何在 vim 启动时自动打开 NERDTree?
将其粘贴到您的 vimrc 中:
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
注意:现在用 plain 启动 vim vim
,而不是vim .
vim 在打开目录时启动时如何自动打开 NERDTree?
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
此窗口是特定于选项卡的,这意味着它被选项卡中的所有窗口使用。这个技巧还可以防止 NERDTree 在第一次选择文件时隐藏。