36

有人知道每次调用 vim 时如何强制 .vimrc 自动打开 NERDTree 吗?操作系统是*nix。

4

6 回答 6

74
 au VimEnter *  NERDTree

在你的 vimrc 中应该这样做

:he autocmd.txt 用于背景

于 2009-11-19T00:22:01.177 回答
45

您也只能在命令行上没有文件时打开 Nerd Tree:

function! StartUp()
    if 0 == argc()
        NERDTree
    end
endfunction

autocmd VimEnter * call StartUp()

摘自Ovid 的博客文章

于 2011-04-27T06:06:51.440 回答
9

当没有提供文件参数时打开 NERDTree 的一个衬垫是

autocmd vimenter * if !argc() | NERDTree | endif
OR
au vimenter * if !argc() | NERDTree | endif

上面的代码只是检查是否没有提供参数然后 open NERDTree

于 2016-08-02T11:06:22.550 回答
2

基于@zoul的回答,在我的情况下,如果我指定目录或不指定任何内容,我希望NERDTree默认打开,如果我指定单个文件则不打开,所以我最终得到:

function! StartUp()
    if !argc() && !exists("s:std_in")
        NERDTree
    end
    if argc() && isdirectory(argv()[0]) && !exists("s:std_in")
        exe 'NERDTree' argv()[0]
        wincmd p
        ene
    end
endfunction

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * call StartUp()
于 2018-12-05T15:30:00.177 回答
0

如果您正在寻找一种拥有持久 NERDTree 的方法,即使您打开新标签页,它仍然存在,您最好使用jistr/vim-nerdtree-tabs并添加.vimrc

let g:nerdtree_tabs_open_on_console_startup=1

该软件包不再维护,但它可以工作,我不知道有什么等价物。

于 2021-11-08T16:01:15.403 回答
0

在您的 vim 配置文件中(我使用 nvim,所以对我来说它是 in ~/.config/nvim/init.vim),
在文件中的任何位置添加该行: au VimEnter * NERDTree

于 2022-01-10T13:49:16.850 回答