Vim --remote-silent总是为第一个文件打开[No Name]缓冲区

时间:2012-09-08 05:27:34

标签: vim

我希望能够使用相同的实例打开文件,因此我在打开文件时添加了--remote-silent。但是第一次加载时,Vim会打开一个空缓冲区,然后是我的文件。所以现在我有2个缓冲区。

经过进一步调查,我注意到设置nohidden将解决此问题。但是,这不仅违背了我的喜好,而且会导致第一个缓冲区没有语法高亮。

如果没有--remote-silent选项,就不会发生这种情况。

任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:3)

在没有运行实例的情况下执行$ vim --servername FOO --remote[-silent] filename首先启动新实例然后打开文件:它不像$vim filename。你必须找到一种方法来完全删除第一个空缓冲区。

在我的有限测试中,将set bufhidden=wipe添加到~/.vimrc可能会解决问题。

位于缓冲区本地的

set bufhidden=wipe仅应用于第一个空缓冲区,然后重置。

请参阅:h bufhidden

但是,当你正常运行Vim时,这肯定会引起一些问题。

修改

是的,set bufhidden=wipe会导致明显的问题。当“正常”启动时(使用$vim file1),当您编辑不是您想要的第二个文件时,将擦除第一个缓冲区。

对缓冲区名称的简单检查可以解决该问题:

if bufname('%') == ''
  set bufhidden=wipe
endif

语法突出显示适用于所有情况,此处。您可以在某处发布~/.vim/~/.vimrc的内容吗?

答案 1 :(得分:0)

Ninja 系列选项允许在打开文件后执行附加的Ex命令。

您在这里可以做的是添加--remote,这将删除#1缓冲区,即[No Name]缓冲区。

示例::bd1