如何从vim中删除默认的空白缓冲区?

7
每当我使用多个缓冲区时,总会有一个是空的。如果我从命令行打开vim文件(即不想创建新文件,或者通过先命名新文件并使用该名称启动vim来选择创建新文件),我希望不要这样。我该怎么做?
编辑:
我是这样启动gvim的:
我在我的bashrc中有一个别名:alias g="gvim --remote-silent"
我使用以下命令从命令行打开文件:g 文件名
此时(如果我没有已经打开的gvim实例),我有两个缓冲区:
编辑2:
平台是Linux Mint,版本为:VIM - Vi IMproved 7.3(2010年8月15日,编译于2011年3月24日07:07:39)。
我更新了David建议的NERDTree插件,但没有帮助。我使用的其他插件:Pathogen,a,doxygentoolkit,nerdtree,snipmate,vim-rails,ack_plugin,easymotion,protobuf,sparkup,yankring,bufexplorer,matchit,rainbow,surround,clang_complete,nerdcommenter,repeat

2
当你在命令行中传递一个文件给vim时,你不会得到一个空的缓冲区。这与你打开vim并执行:e foo是一样的。你能详细说明一下吗? - Josh Lee
是的。我们似乎没有你的问题。请告诉我们你如何启动vim(版本/操作系统)以及如何打开文件。 - sehe
谢谢,我添加了更多的信息。 - Tamás Szelei
你安装了NERD树吗?我曾经遇到过一个旧版本的NERD树的问题。升级到最新版本后,问题就解决了。 - david
2个回答

2
为了避免这种情况,我更改了我的别名:
g() { [ -z "$(command gvim --serverlist)" ] && command gvim "$@" || command gvim --remote-silent "$@" ; }

如果服务器列表为空:启动普通的gvim,否则使用remote-silent选项启动。

2

我在以下环境下没有你的问题:

  • linux, gvim - Vi IMproved 7.3 (2010年8月15日编译的补丁版本为1-35)
  • windows gvim - Vi IMproved 7.2 (2008年8月9日编译的32位Windows GUI版本,支持OLE)

你可能遇到了一个bug。

你可以通过清除$MYVIMRC(暂时)并运行gvim --noplugin来调试问题。

或者检查所有设置(如bufhidden和其他可疑方面)。

 :set
 :setglobal

并查看它们是由哪个脚本/插件设置的(这里仅以bufhidden作为示例):

 :verbose set bufhidden
 :verbose setglobal bufhidden

您还可以检查自动命令(可能会防止缓冲区被清除)。
 :verbose au

这一定是我的插件之一。我想重新组织它们,也许从 pathogen 转移到 vundle,所以现在我会这样做并回来找出原因。谢谢。 - Tamás Szelei
谢谢sehe。我已经用vundle替换了我的旧pathogen设置,并更新了所有插件。我留下了一些我没有使用的插件。如果有人遇到同样的问题,我建议检查我在问题中列出的那些插件。我没有花时间去找出是哪一个导致了问题,特别是因为没有保证只有其中一个。无论如何,Vundle很好,我的更新后的插件也很好,生活很美好 :) - Tamás Szelei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接