打开多个文件时的Vim分割窗口

打开多个文件时的Vim分割窗口,vim,Vim,我想把一些东西放进我的vimrc中,这样,如果我打开两个文件,它们会自动在单独的拆分窗口中打开。我不想以-o开头,因为有时我会一次打开很多文件,而进行15次以上的拆分不会很好。所以我想要一些逻辑来检查打开了多少个文件,以及是否有2个文件将每个文件放入自己的拆分窗口中 谢谢 ps,我最有可能使用C++来查看C++项目的.cc和.h文件。 最简单的方法是添加< /p> if argc() == 2 silent all endif 到您的.vimrc.可能可以在shell脚本中设置如下内容:

我想把一些东西放进我的vimrc中,这样,如果我打开两个文件,它们会自动在单独的拆分窗口中打开。我不想以-o开头,因为有时我会一次打开很多文件,而进行15次以上的拆分不会很好。所以我想要一些逻辑来检查打开了多少个文件,以及是否有2个文件将每个文件放入自己的拆分窗口中

谢谢


ps,我最有可能使用C++来查看C++项目的.cc和.h文件。

最简单的方法是添加< /p>
if argc() == 2
  silent all
endif

到您的.vimrc.

可能可以在shell脚本中设置如下内容:

#!/bin/bash
if [[ "$#" -eq "2" ]]
then
  /usr/bin/vim -o $1 $2 
else
  /usr/bin/vim $*
fi
如果你觉得有点花哨,那么你可以做一些更复杂的事情,通过循环遍历参数,检查是否有选项,然后忽略它们

也许你可以试试

vim -o2 file1 file2 file3...
我知道这不是完美的解决方案,在这种情况下,vim每次打开两个窗口

但是您可以编写和使用这样的小脚本

if [ $# -ge 2 ];
    vim -o2 $*
else
    vim $*
fi

近乎完美

我通过在我的vim命令-c'split | bn'中添加命令行来完成同样的事情。我可以在同一个命令中打开任意多个文件-c告诉它运行一个命令,然后在单引号中,“split | bn”告诉vim拆分窗口,然后切换到下一个缓冲区。因此,如果我键入,例如:

gvim foo1.cpp foo2.cpp foo3.cpp foo4.cpp -c 'split | bn'
然后打开gvim,在拆分窗口中显示前两个文件foo1.cpp和foo2.cpp。我喜欢这种方式,因为我不必修改我的.vimrc,这样我就可以在任何机器上使用它,而且对于命令行来说它仍然足够简洁


注意:我只在gvim中测试过这一点,没有在终端中测试过vim。

我考虑过这样做,但宁愿在我的vimrc中测试。如果我没有其他想法,我会接受的。谢谢,除了一件事之外,它工作得很好,我得到了一个按ENTER键或键入命令来继续。有没有办法避免这个提示?。谢天谢地,有没有办法把它改成垂直分割?ie-O而不是-O?@Leicha将all更改为垂直all。手册上都有。这很复杂,但必须问同样的问题:它能被做成垂直分割吗?有没有办法在之后同时关闭这15个[未编辑的]窗口?当然。全部退出将关闭所有打开的窗口:qa!