Auto-open NERDTree in “EVERY” tab
是否可以通过在NERDTree中按t或T在每个选项卡中打开NERDTree,如果可以,如何?
1 2 | autocmd VimEnter * NERDTree autocmd BufEnter * NERDTreeMirror |
编辑:上面的命令似乎在NERDTree的缓冲区中打开新选项卡。而是使用wejrowski在以下评论中提到的方法:
1 | autocmd BufWinEnter * NERDTreeMirror |
我写了一个vim插件来做到这一点,并在顶部添加了一些功能(即使所有树保持同步,确保有意义的标签标题-而不是诸如'NERD_tree_1'之类的标题)。
在Github上:https://github.com/jistr/vim-nerdtree-tabs
1 2 3 4 | autocmd VimEnter * NERDTree autocmd BufEnter * NERDTreeMirror autocmd VimEnter * wincmd w |
这个比Dustin的要好一点,因为它将光标直接放在要编辑的文件上以便快速编辑。感谢达斯汀(Dustin)提供的原始示例^^
更好的解决方案是仅在未设置命令行参数的情况下打开NERDTree。
autocmd VimEnter * if !argc() | NERDTree | endif
autocmd BufEnter * if !argc() | NERDTreeMirror | endif
NERDTree是如果您执行
这可能不是最好的方法,但是如果您编辑plugin / NERDTree.vim并进行以下更改:
1 | exec"nnoremap <silent> <buffer>". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>" |
对此:
1 | exec"nnoremap <silent> <buffer>". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>:NERDTree<cr>" |
它将更改NERDTree视图中" t"的绑定,以首先打开文件,然后打开NERDTree。请注意,NERDTree视图将不会保持同步。
如何切换它。
1 2 3 | " in .vimrc " NERDTree, Use F3 for toggle NERDTree nmap <silent> <F3> :NERDTreeToggle<CR> |
在OSX中,只需按fn-F3即可切换NERDTree。
官方存储库的自述文件中实际上提到了此问题,其中包括与自动打开NERDTree有关的三种情况:
How can I open a NERDTree automatically when vim starts up?
将此粘贴到您的vimrc中:
How can I open a NERDTree automatically when vim starts up if no files were specified?
将此粘贴到您的vimrc中:
1 2 | autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif |
注意:现在用普通的
How can I open NERDTree automatically when vim starts up on opening a directory?
1 2 | 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在首次选择文件时隐藏。