Как открыть новое окно под разделением, созданным vimdiff?

Если в командной строке я запускаю

vimdiff file1 file2

Я получаю экземпляр vim, в котором два файла открыты бок о бок, что-то вроде этого:

╔═══════╤═══════╗
║       │       ║
║       │       ║
║ file1 │ file2 ║
║       │       ║
║       │       ║
╚═══════╧═══════╝

Это очень хорошо, но иногда мне хочется открыть третий файл, чтобы посмотреть. Я не хочу создавать еще одно вертикальное разделение, потому что иначе строки будут такими короткими, что мне придется все время прокручивать их по горизонтали, чтобы прочитать их. Но занять несколько строк внизу экрана не помешало бы. Итак, как я могу перейти от вышесказанного к следующему:

╔═══════╤═══════╗
║       │       ║
║ file1 │ file2 ║
║       │       ║
╟───────┴───────╢
║     file3     ║
╚═══════════════╝

Я пытался использовать :sp file3, но в итоге получил это (предположим, что я выполнил команду, пока курсор находился в файле1):

╔═══════╤═══════╗
║ file3 │       ║
║       │       ║
╟───────┤ file2 ║
║ file1 │       ║
║       │       ║
╚═══════╧═══════╝

Заранее спасибо за вашу помощь!


person Community    schedule 13.05.2009    source источник
comment
+1. Интернету нужно больше ASCII-арта.   -  person technomalogical    schedule 13.05.2009
comment
Как вы получили ASCII-арт вокруг имен файлов?   -  person wcm    schedule 13.05.2009
comment
@wcm, скопировав и вставив соответствующие символы из карты символов в Windows.   -  person    schedule 14.05.2009
comment
Мой коллега нашел сайт, на котором рассказывается о таких вещах. Вот: fileformat.info/info/unicode/block/box_drawing/ index.htm   -  person wcm    schedule 14.05.2009
comment
Примеры: ╔ = альт-201, ╚ = альт-200, ╗ = альт-187, ╝ = альт-188   -  person wcm    schedule 14.05.2009


Ответы (3)


Использовать

:botright split 

и откройте новый файл внутри.

person Fritz G. Mehner    schedule 13.05.2009

Чтобы расширить ответ @fgm, если вы введете эту команду, вы можете автоматически заполнить имя файла, которое хотите отредактировать, как в обычном :edit:

:bot split +edit thirdfile.cpp

Но чтобы не вводить все это, вы можете создать "Определяемую пользователем команду" следующим образом:

:command -complete=file -nargs=* Third bot split +edit <args>

Теперь вы можете просто набрать :Third, чтобы создать третье окно внизу экрана с файлом, который вы хотите отредактировать, например:

:Third mythirdfile.cpp

Обратите внимание, что вы можете автоматически заполнять, как и с обычным :edit.

И, конечно же, вы можете изменить имя команды на другое, если вам не нравится :Third, только учтите, что оно должно начинаться с заглавной буквы.

Для получения дополнительной информации введите :help user-commands и :help 40.2

person Jorge Gajon    schedule 13.05.2009
comment
И, конечно же, чтобы определенная вами команда была постоянной, поместите ее в файл .vimrc, опустив двоеточие (:). - person Jorge Gajon; 13.05.2009

Если вы уже открыли :sp file3, как в вашем последнем примере, ^WJ переместит существующее окно туда, куда вы хотите.

person asparagino    schedule 13.05.2009