簡體   English   中英

為什么用`vim .`和NERDTree打開整個目錄兩次打開文件瀏覽器?

[英]Why does open a whole directory with `vim .` and NERDTree open up the file browser twice?

我安裝了NERDTREE。

如果我用vim .打開整個目錄vim . 我看到以下內容:

在此處輸入圖片說明

如果我用vim file1.txt打開目錄中的特定文件,我會看到以下內容:

在此處輸入圖片說明

有沒有辦法讓vim . 不打開文件瀏覽器兩次? 我知道它沒有要打開的特定文件,但我寧願讓它只打開左側窗格,然后右側什么也不打開,而不必總是手動關閉右側。

如果有幫助,這是我的.vimrc的相關部分

" === Plugins

filetype off
call vundle#begin('$HOME/.vim/bundle')

Plugin 'VundleVim/Vundle.vim' " required
Plugin 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }

call vundle#end()
filetype plugin indent on


" === Auto Commands

autocmd VimEnter * NERDTree                                        " Start NERDTree on startup
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree")
  \ && b:NERDTree.isTabTree()) | q | endif                         " Close NERDTree explore after last window closes

" === Config

let NERDTreeMinimalUI  = 1  " NERDTree Minimal UI
let NERDTreeDirArrows  = 1  " NERDTREE Directional Arrows
let NERDTreeShowHidden = 1   " Show hidden files

Nerdtree 不知道您在主窗格中打開了什么。 Vim 不知道 Nerdtree 用它的側面板做什么。

如果你只關心你想在當前目錄中打開 vim 的情況, vim (只是沒有參數的命令)將打開歡迎屏幕,並且帶有自動命令的 Nerdtree 將在側窗格中打開基於當前目錄。

如果您擔心將 vim 指向 cwd 以外的目錄,您可以禁用 Nerdtree 插件自動命令,使其不會自動打開,或者重寫自動命令以觸發如果您告訴 vim 打開的是一個文件。 像這樣的東西?

augroup NerdTree
  autocmd!
  autocmd VimEnter * | if isdirectory(expand("<afile>")) | :NERDTreeToggle | endif
augroup END

雖然我不能完全讓它正常工作。 也許其他人可以發揮我目前所擁有的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM