繁体   English   中英

在“EVERY”选项卡中自动打开NERDTree

[英]Auto-open NERDTree in “EVERY” tab

是否可以在NERDTree中按tT在每个选项卡中打开NERDTree,如果是,如何?

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原始示例^^

这可能不是最好的方法,但是如果你编辑插件/ 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视图不会保持同步。

更好的解决方案是仅在没有设置命令行参数的情况下打开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或类似的东西,NERDTree是没有用的。

如何切换它。

" in .vimrc
" NERDTree, Use F3 for toggle NERDTree
nmap <silent> <F3> :NERDTreeToggle<CR>

在OSX中,您只需要fn-F3来切换NERDTree。

这个问题实际上在官方Repository的自述文件中提到,包括与自动打开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

注意:现在用普通的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在首次选择文件时隐藏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM