vim - 为什么用 `vim .` 打开整个目录,而 NERDTree 会打开文件浏览器两次?
问题描述
我已经安装了 NERDTREE。
如果我打开整个目录,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
虽然我不能让它正常工作。也许其他人可以发挥我目前所拥有的一切。
推荐阅读
- asp.net-core - 使用 HttpClientFactory 哪种方式更好?
- ios - 当 UIViewController 模态呈现时,CAEmitterLayer 粒子不可见
- code-coverage - 运行“cover -test”时如何从子进程中收集覆盖率,否则?(开发::封面)
- r - 通过重复连接创建序列
- vb.net - 无法使用 AutoFac 或 Ninject 传递依赖项 ByRef
- java - JBoss EAP + WMQ 可怕的慢消息发送
- python - 带有扩展序列的生成器的 Keras fit_generator() 返回的样本比总数多
- r - 用组解释 dfm_weight(scheme='prop') (quanteda)
- python - 如何找到包含特定元素的嵌套列表的最后一次出现的索引?
- entity-framework-6 - EF6,DbContext/POCO 设置虚拟导航属性以附加新对象:可能吗?