4

Мне интересно, если я уже открыл два файла в Vim с вертикальным разделением, но я хочу открыть еще два файла на дополнительной вкладке и разделить эти два файла в вертикальном окне, как я могу это сделать?

Я знаю, что могу сделать:

:tabnew file1
:vsp file2

Есть ли способ сделать это в одну строку?

4 ответа4

6

Я не уверен, что это то, что вы ищете, но это одна строка:

:tabnew file1 | vsp file2

Увидеть

:help :bar
3

Я только что нашел похожий метод, использующий каналы командной строки, но я думаю, что он намного мощнее:

:tabnew | args views/* | vertical all

Это открывает новую вкладку, а затем загружает все файлы в каталоге views Вместо передачи глобуса args мы можем указать отдельные файлы. vertical разделяет панель на отдельные вертикальные окна, что я и предпочитаю. all говорит ему использовать все файлы, переданные args .

0

Вдохновленный комментариями TTM, мои два цента здесь (откройте все файлы .c в src на одной вкладке и все файлы .h в inc на другой вкладке):

:argadd | :tabnew | args src/* | :argadd | :tabnew | args inc/*
0

Когда вы говорите "в одну строку", я подозреваю, что вы не просто говорите об использовании символа вертикальной черты | вместо новой строки. Скорее, я подозреваю, что вы ищете более короткий способ выполнения своей задачи.

Вы можете получить то, что хотите, объединив существующие предложения в пользовательскую команду (см. help :command). Пользовательские команды должны начинаться с заглавной буквы.

Например, если вы программист на C++, возможно, вам нравится открывать новую вкладку, в которой файлы реализации и заголовочные файлы расположены рядом друг с другом. На этом этапе вы можете определить такую команду в вашем .vimrc:

:command -nargs=1 -complete=file Tabv tabe <args>H | vs <args>C

Который можно использовать таким образом:

:Tabv Foo

открыть Foo.C левой и Foo.H справа в новой вкладке.

Если ваш типичный случай использования не является таким конкретным, может быть сложнее сохранять нажатия клавиш. Поскольку вы спрашиваете об этом в SU вместо SO, возможно, вы не программист, но, надеюсь, вы сможете адаптировать это предложение в соответствии со своими потребностями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .