Vim--远程静默始终为第一个文件打开[无名称]缓冲区
我希望能够使用相同的实例打开文件,因此在打开文件时添加了Vim--远程静默始终为第一个文件打开[无名称]缓冲区,vim,Vim,我希望能够使用相同的实例打开文件,因此在打开文件时添加了--remote silent。但是第一次加载时,Vim将打开一个空缓冲区,然后打开我的文件。现在我有两个缓冲区 经过进一步调查,我发现设置nohidden可以解决这个问题。但是,这不仅不符合我的喜好,而且会导致第一个缓冲区没有语法突出显示 如果没有--remote silent选项,就不会发生这种情况 谢谢你的帮助。谢谢 Doing$vim--servername FOO--remote[-silent]filename在没有实例运行的情
--remote silent
。但是第一次加载时,Vim将打开一个空缓冲区,然后打开我的文件。现在我有两个缓冲区
经过进一步调查,我发现设置nohidden
可以解决这个问题。但是,这不仅不符合我的喜好,而且会导致第一个缓冲区没有语法突出显示
如果没有--remote silent
选项,就不会发生这种情况
谢谢你的帮助。谢谢 Doing$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
的内容发布到某个地方吗?选项的--remote
系列允许在打开文件后执行额外的Ex命令
您可以在这里添加:bd1
,删除缓冲区#1,即[No Name]缓冲区
示例:
--remote silent+:bd1{file}
成功删除了缓冲区,但第一个文件没有语法突出显示。我也不能打开它。文件的语法突出显示在这里。无论如何,bufhidden似乎不是一个有效的解决方案,因为在启动$vim file1
后执行:e file2
时,它将擦除file1
。我认为,autocmd
应该更可取。我的vimrc见第57行,了解我解决问题的方法。不确定这是不是正确的方法,但到目前为止似乎还有效。@Dalton Tan,如果你想打开一个目录怎么办。例如,gvim——远程。
用于用户选择并打开文件。我用NerdTree,很遗憾你的方法抹掉了NerdTree。哦,哼。太棒了:必须是公认的答案。解决了以下问题:Vim作为Claws Mail的外部编辑器(带有xfce4终端的bash脚本--disable server--geometry=230x60+60+0-x Vim-f--远程静默+:bd1“$@”通过/mnt/温哥华/programming/scripts/claws\u mail-external\u editor.sh%s
调用,设置为claws mail中的外部文本编辑器命令。问题根据OP的问题解决,并且当存在打开缓冲区的现有Vim时,需要为CM消息合成打开一个新的Vim实例。