Як зберегти розділені вікна після від'єднання екрана GNU


35

Я використовую екран на сервері Ubuntu.

У мене екран розділений на чотири регіони, в кожному з яких є інше вікно.

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

Як я можу тримати екран розбитим під час повторного вкладення?

Відповіді:


15

З екрана FAQ :

(Питання мається на увазі: "Як я можу тримати розділені вікна над відривом?"

Коротка відповідь полягає в тому, що ви не можете. Більш довга відповідь - це можна підробити.

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

Злом полягає у використанні вкладених сеансів на екрані. Почніть один сеанс і дайте йому деяку послідовність евакуації, яку ви не будете використовувати багато (або просто повністю вимкніть її символ виходу). Прив’яжіть звичайну послідовність відключення клавіш до цього сеансу екрана. Тепер почніть або приєднайте до основного сеансу екрану. Всі ваші роботи будуть виконані на внутрішньому сеансі, і ви зможете розділити ваш дисплей. Коли ви від'єднаєтесь, відмежується саме зовнішній сеанс, тому ваші розбиття у внутрішньому сеансі будуть збережені.

Припустимо, що ви використовуєте символ утечі за замовчуванням, Ca, ваш альтернативний screenrc повинен містити:

escape ""
bindkey ^ad detach

1
Провівши останній рік-два, налаштовуючи та активно використовуючи вкладені сеанси екрану, я рекомендую це. З часом біль додаткової складності зменшується, при цьому збільшується корисність більш гнучкої установки.
funroll

13
Нова функція, тобто layout, визнає неправдивою цю відповідь!
Кадір

Дивіться superuser.com/a/516822/113250 щодо "нової" вбудованої функції компонування
Thiago Figueiro

67

Я виявив, що якщо у вас вже встановлені деякі вікна, і ви хочете зберегти їх, ви можете зробити це:

Ctrl-a
:
layout save default

Потім, коли ви від'єднаєтесь та повторно приєднаєтесь до сеансу, макет слід відновити.

Працює з версією екрана 4.00.03jw4 (FAU) 2 травня-06 (Ubuntu 12.04 та 12.10)

Також ви можете створити сеанс Deamon як такий:

$> screen -dmSU mysession

а потім мати його завжди можна, зателефонувавши:

$> screen -r mysession

5
Набагато краще рішення. Це має бути прийнятою відповіддю. (Я знаю, чому я завжди прокручую XD вниз)
BrainStone

1
На жаль, схоже, що поточна версія на Redhat screen 4.00.03 (FAU) 23-Oct-06не має цієї функції. Але це повинно!
Девід Домбровський

Це краща відповідь, але нижче є ще краща відповідь, яка автоматично зберігає макет щоразу, використовуючи .screenrc. Оновіть цю відповідь
Марк Лаката

14

У версії git layoutбула представлена нова функція .

з екрана (1):

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

Створіть новий макет. Екран зміниться на один цілий регіон і перейде в порожнє вікно. Звідси ви будуєте регіони та вікна, які вони показують, як хочете. Новий макет буде пронумерований найменшим доступним цілим числом, починаючи з нуля. Ви можете необов’язково дати назву вашому новому макету. В іншому випадку він матиме за замовчуванням назву "макет". Ви завжди можете змінити назву пізніше, скориставшись заголовком макета команди.

навіть якщо ви відключили сеанс екрана, макет пам’ятає, як розділився регіон.

наприклад, екран починається з наступної конфігурації.

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

І повторно приєднавши цей сеанс, ви зможете повернутися до (останнього вибраного) макета, який має 3 розділених області.


хтось знає, які подання потрібні, щоб отримати це (мені достатньо дурний, щоб застосувати патчі, але я ніколи не запускаю код магістралі (маю погану карму: P))
borrel


6

Здається, tmux так і робить. Це новий мультиплексорний проект, натхненний екраном, але кодований з нуля та під ліцензією BSD.

(Вибачте, якщо мою англійську читати незручно: - °)


-1

Нещодавно я читав людину на цілому екрані, і немає загального способу це зробити, якщо сам екран не може автоматично запам'ятати його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.