Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim-如何从命令行在多个选项卡内打开多个窗口?_Vim_Tabs_Window_Vi - Fatal编程技术网

vim-如何从命令行在多个选项卡内打开多个窗口?

vim-如何从命令行在多个选项卡内打开多个窗口?,vim,tabs,window,vi,Vim,Tabs,Window,Vi,我尽了最大的努力找到了答案;如果我错过了,我道歉 一些快速的背景:我正在查看,特别是那些使用创建的。在我感兴趣的每个文件夹中,都有多个文件要打开,使用命名约定{protocol name}-protocol.pac和{protocol name}-analyzer.pac。查看每个协议文件的最佳方式是并排查看 现在,我要做的是为每一对打开一个单独的选项卡。也就是说,第一个选项卡在一个窗口中有{protocol1}-protocol.pac,在相邻窗口中有{protocol1}-analyzer.

我尽了最大的努力找到了答案;如果我错过了,我道歉

一些快速的背景:我正在查看,特别是那些使用创建的。在我感兴趣的每个文件夹中,都有多个文件要打开,使用命名约定{protocol name}-protocol.pac和{protocol name}-analyzer.pac。查看每个协议文件的最佳方式是并排查看

现在,我要做的是为每一对打开一个单独的选项卡。也就是说,第一个选项卡在一个窗口中有{protocol1}-protocol.pac,在相邻窗口中有{protocol1}-analyzer.pac,第二个选项卡在一个窗口中有{protocol2}-protocol.pac,在相邻窗口中有{protocol2}-analyzer.pac,依此类推

我试图找出一种方法,在命令行的一个命令中对所有相关文件夹执行上述操作。我知道如何在单独的选项卡或单独的窗口中打开所有相关文件,但我想不出一种方法来组合这些文件以获得我想要的行为。我可以手动操作,比如打开一对,创建一个新的选项卡,打开另一对,等等,但这是讨厌的和重复的,所以如果可能的话,我宁愿用一个命令来完成


有人知道怎么做吗?或者如果可能的话?

应该可以使用vim的-remote选项卡选项

首先启动vim服务器

     $ gvim --servername MYSERVER &
现在将协议文件逐个添加到vim服务器,同时将文件名中的-protocol添加到-analyzer,并在vs[plit]中打开它以获得相应的analyzer文件

     $ find  . -name \*.pac -exec gvim  --servername MYSERVER --remote-tab "+execute 'vs ' . substitute(expand('%:p'), '-protocol', '-analyzer', '')"  {} \;
有关更多详细信息,请参阅


希望这对您有所帮助

您总是使用完全相同的文件集吗?我正在编写自己的协议解析器,因此我添加了一个包含两个文件的新文件夹,但除此之外,是的。你为什么这么问?我在想,你可以使用会话来保存分割、选项卡和文件的布局,这样你只需要打开一次,然后你就可以打开会话,而不是重新打开每个文件。这里有更多关于会话的内容:我认为会话或者通过检查文件名来编写vimscript是我不知道的关于会话的最好方法;这看起来肯定能解决我的问题。显然,运行一个命令是理想的,但是作为替代,会话可以正常工作。谢谢当我打开“.c”文件及其“.h”时,文件名的更改对我来说很简单。