1

Допустим, у меня есть окно с двумя панелями (размер не имеет значения, 'A' = активный)

+-----+-----+
|     |  A  |
|     |     |
|     |     |
|     |     |
+-----+-----+

Если бы я был split-window я бы получил:

+-----+-----+
|     |  A  |
|     |     |
|     +-----+
|     |     |
+-----+-----+

Что обычно нормально. Но могу ли я сказать ему разделить родительское окно вместо текущей панели? Например:

+-----+-----+
|     |  A  |
|     |     |
+-----+-----+
|           |
+-----------+

2 ответа2

1

Оригинальный ответ:
Команда splitw поддерживает указание цели.
Используйте -t, чтобы указать панель.

Ctrl-B:splitw -t 0

На очень полезной стороне примечание:

Ctrl-B q
поможет определить, какую панель использовать.

Хотите делать это часто на одной панели (например, панель с нулевым номером вместо "текущей панели")? Затем создайте связывание клавиатуры.

Расширение для ответа:
Следующее создаст макет, который был запрошен искусством ASCII в вопросе.

(1): начать с нового окна. Может быть, не обязательно, но я сделал это, чтобы упростить тестирование.
(2): сделать вертикальное разделение (Ctrl-B: splitw -h)
(3): Необязательно, но рекомендуется: сделайте что-нибудь на панели # 1, чтобы панель выглядела иначе, чтобы вы могли видеть, что это работает как задумано. (4): нажмите Ctrl-B
(5): хотя вам нужно двоеточие, это часть следующего текста. Вставьте следующий текст.

:splitw -t 0; splitw -t 0 -h; selectp -t 1; своп-панель -s 3; selectp -t 1; kill-pane -t 1

(6): Нажмите Enter, чтобы запустить составную команду.

Примечание (7): Показанный подход зависит от конкретных номеров панелей, поэтому крайне рекомендуется шаг (1). Я не говорю, что это решение хорошо адаптируется для других раскладок, и поэтому жесткое программирование привязки клавиатуры может привести к неожиданным результатам в других начальных ситуациях. Однако это показывает, как сделать то, что было запрошено, поэтому это может быть полезной демонстрацией того, как сделать это вручную (что часто полезно при разработке автоматизированного подхода к задаче).
Примечание (8): Я довольно настороженно отношусь к этому подходу, особенно с использованием kill-pane. Кажется, что это может легко привести к потере работы, если что-то не работает так, как ожидалось. Если вы достаточно смелы, чтобы попытаться вставить это в привязку клавиш, рассмотрите возможность использования оператора подтверждения, как показано с привязкой по умолчанию для Ctrl-B x (показывается с помощью Ctrl-B?).

0

Попробуйте это :splitw -v -f

Согласно этому описанию:

Параметр -f создает новую панель, охватывающую полную высоту окна (с -h) или полную ширину окна (с -v), вместо разделения активной панели.

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

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