自动打开两个窗格

Automatically open two panes

我通过以下方式打开 nerdtree

$ mvim .

如果我这样做:

:NERDTree

我得到两个显示树视图的垂直窗格。在左窗格中,如果我导航到一个文件并点击 o,该文件将在右窗格中打开。另一方面,如果我在右窗格中导航到一个文件并点击 o,该文件将在右窗格中打开。这就是我想要的设置,但我不想输入 :NERDTree 才能到达那里。

我正在尝试设置 nerdtree,这样当我这样做时:

$ mvim .

自动打开两个垂直窗格。我找到了这个 vimscript:

"Nerdtree--open two windows on startup
autocmd vimenter * call s:CheckToSplitTwoTrees()
function! s:CheckToSplitTwoTrees()
    if argc() != 1 || !isdirectory(argv(0))
        return
    endif

    vsplit

    "there should really be a better way to do this... e.g. :NERDTreeSecondary
    call nerdtree#checkForBrowse(argv(0))
endfunction

可以满足我的要求,但是左窗格中的 o 左窗格 中打开文件,而不是右窗格。什么控制 o 在哪个窗格中打开文件?

如果您只是想在启动时对第一个参数执行 :NERDTree(如果它是一个目录),您的功能没问题,但只需执行所需的命令即可。

"Nerdtree--open two windows on startup
autocmd vimenter * call s:CheckToSplitTwoTrees()
function! s:CheckToSplitTwoTrees()
    if argc() != 1 || !isdirectory(argv(0))
        return
    endif
    exe 'NERDTree '.argv(0)
endfunction

安装 NERDTree 插件后,打开 vim 目录会自动显示 NerdTree 浏览器(主要,o 打开文件替换浏览器)而不是常规的 netrw 浏览器。因此,执行 ':NERDTree '.argv(0) 会打开通常的(辅助)NERDTree,其中 o 右侧 窗格中打开。

还要检查这个 related question