Vim 以多种分割模式打开文件

Vim 以多种分割模式打开文件

我想以多重分割模式打开 3 个文件。例如,假设file1 file2 file3 我想在垂直分割模式下打开file13个文件file2,并且两个垂直分割都必须采用水平分割file3

vim file1 file2 -O file3 -o

我尝试了上面的代码,但它覆盖了所有 3 个文件的最后-O一个。-o

答案1

-o-O、 和-p是互斥的。你不能将它们结合起来。

main.ccommand_line_scan()

case 'p':           /* "-p[N]" open N tab pages */
    parmp->window_layout = WIN_TABS;
    break;
case 'o':           /* "-o[N]" open N horizontal split windows */
    parmp->window_layout = WIN_HOR;
    break; 
case 'O':       /* "-O[N]" open N vertical split windows */
    parmp->window_layout = WIN_VER;
    break;

然后在create_windows()

parmp->window_count = make_windows(parmp->window_count,
    parmp->window_layout == WIN_VER);

make_windows()来自window.c

/*
* Make "count" windows on the screen.
* Return actual number of windows on the screen.
* Must be called when there is just one window, filling the whole screen
* (excluding the command line).
*/
int
make_windows(count, vertical)
    int         count;
    int         vertical UNUSED;  /* split windows vertically if TRUE */
{
    int         maxcount;
    int         todo; 

正如您所看到的,没有办法说“水平分割那几个窗口,垂直分割那几个窗口”。

完成您想要的操作的最简单方法是使用-c向 Vim 发送“直接”命令:

vim main.c -c ':split gui.c' -c ':vsplit window.c'

可以缩写为:

vim main.c -c 'sp gui.c | vs window.c'

相关内容