33

Я использую экран на сервере Ubuntu.

Я разделил экран на четыре области, в каждой из которых было свое окно.

Проблема в том, что, когда я отсоединяю (или, возможно, снова присоединяю), получаю четыре окна, но только одну область, и мне нужно снова делать C-a S ?

Как я могу держать мой экран разделенным при повторном подключении?

6 ответов6

64

Я обнаружил, что если у вас уже настроены некоторые окна и вы хотите сохранить их, вы можете сделать это:

Ctrl-a
:
layout save default

Затем при отсоединении и повторном присоединении к сеансу макет должен быть восстановлен.

Работает с Screen version 4.00.03jw4 (FAU) 2-May-06 (Ubuntu 12.04 и 12.10)

Также вы можете захотеть создать сеанс deamon как таковой:

$> screen -dmSU mysession

и тогда он всегда будет доступен по телефону:

$> screen -r mysession
15

С экрана FAQ:

(Подразумеваемый вопрос:«Как мне держать раздельные окна поверх отдельного?»)

Суть в том, что вы не можете. Чем дольше ответ, тем лучше.

Разделение - это свойство вашего дисплея. Процесс, управляющий вашим сеансом экрана, на самом деле не знает о них; делает только один процесс, который отображает сеанс. Таким образом, сеанс экрана не может запомнить разделение, потому что он не знает о них, и как только вы отсоединяетесь, процесс, который знал о них, завершился.

Взлом заключается в использовании вложенных сеансов экрана. Начните один сеанс и дайте ему некоторую escape-последовательность, которую вы не будете часто использовать (или просто полностью отключите ее escape-символ). Свяжите свою обычную последовательность ключей отсоединения с этим сеансом экрана. Теперь запустите или присоедините к сеансу основного экрана. Вся ваша работа будет выполнена во внутренней сессии, и вы можете разделить свой дисплей. Однако, когда вы отсоединяетесь, отсоединяется только внешний сеанс, поэтому ваши разбиения во внутреннем сеансе будут сохранены.

Предполагая, что вы используете escape-символ по умолчанию, Ca, ваш альтернативный screenrc должен содержать:

escape ""
bindkey ^ad detach
14

В git-версии была представлена новая функциональная layout .

с экрана (1):

макет новый [название]

Создать новый макет. Экран изменится на один целый регион и переключится на пустое окно. Отсюда вы строите регионы и окна, которые они показывают по вашему желанию. Новый макет будет пронумерован наименьшим доступным целым числом, начиная с нуля. При желании вы можете дать название вашему новому макету. В противном случае он будет иметь заголовок по умолчанию "макет". Вы всегда можете изменить заголовок позже, используя заголовок макета команды.

даже если вы отключили сеанс экрана, макет запомнил, как регион был разделен.

Например, экран начинается с последующей конфигурации.

layout new
split
split -v
screen 0
focus next
screen 1
focus bottom
screen 2
detach

И снова присоедините этот сеанс, вы сможете вернуться в (последний выбранный) макет, который имеет 3 разделенных региона.

7

Кажется, что Tmux делает. Это новый проект мультиплексора, вдохновленный экраном, но закодированный с нуля и под лицензией BSD.

(Извините, если мой английский неудобно читать:- °)

4

Просто добавьте эту строку в ваш ~/.screenrc:

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default
0

Я недавно прочитал весь экранный человек, и нет никакого обычного способа сделать это, если сам экран не может запомнить это автоматически.

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