【问题标题】:How can I remove the default empty buffer from vim?如何从 vim 中删除默认的空缓冲区?
【发布时间】:2014-04-28 16:40:25
【问题描述】:

每当我使用多个缓冲区时,总会有一个是空的。如果我从命令行用 vim 打开一个文件,我不想这样(即我不想创建一个新文件,或者选择通过首先命名并以该名称启动 vim 来创建一个新文件)。我该怎么做?

编辑

我通过以下方式启动 gvim:

我的 bashrc 中有一个别名:alias g="gvim --remote-silent"

我从命令行打开文件:g name-of-file

此时(如果我还没有打开 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, 彩虹, 环绕, clang_complete,nerdcommenter,重复

【问题讨论】:

  • 当你在命令行传递 vim 文件时,你不会得到一个空的缓冲区。就像打开 vim 和 :e foo 一样。你能详细说明一下吗?
  • 是的。我们显然没有遇到您的问题。请告诉我们您如何启动 vim(什么版本/操作系统)以及如何打开文件
  • 谢谢,我添加了更多信息。
  • 你安装了NERD树吗?我在旧版本的 NERD 树上遇到了这个问题。升级到最新版本为我解决了这个问题。

标签: vim


【解决方案1】:

我没有你的问题

  • linux, gvim - Vi IMproved 7.3(2010 年 8 月 15 日,2011 年 3 月 24 日 07:07:34 编译)包含的补丁:1-35
  • windows gvim - Vi IMproved 7.2(2008 年 8 月 9 日,2008 年 8 月 9 日 18:46:22 编译)支持 OLE 的 MS-Windows 32 位 GUI 版本

您可能正在查看一个错误。

您也许可以通过清理您的 $MYVIMRC(临时)并运行 gvim --noplugin 来调试。

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

 :set
 :setglobal

并查看它们是从哪个脚本/插件设置的(bufhidden 作为示例仅在此处):

 :verbose set bufhidden
 :verbose setglobal bufhidden

您还可以检查自动命令(这可能会阻止缓冲区被擦除)

 :verbose au

【讨论】:

  • 这一定是我的插件之一。我想重组它们,也许会从病原体中解脱出来,所以我现在就这样做,然后回到原点。谢谢。
  • 谢谢。我已经用 vundle 替换了旧的病原体设置,并且我的所有插件都已更新。我省略了一些我没有使用的。如果有人遇到同样的问题,我建议检查我在问题中列出的那些插件。我没有花时间解决导致它的原因,特别是因为不能保证它只是其中之一。无论如何,Vundle 很好,我更新的插件很好,生活很好:)
【解决方案2】:

为了避免这种情况,我更改了我的别名:

g() { [ -z "$(command gvim --serverlist)" ] && command gvim "$@" || command gvim --remote-silent "$@" ; }

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

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2012-09-19
    相关资源
    最近更新 更多