10

Я использую screen разделенный на 3, с vim слева, а два других экрана разделены горизонтально справа. Я знаю, что при отсоединении от экрана я могу сохранить макет с помощью :layout save my_layout_name .

У меня уже есть layout autosave on в моем файле .screenrc , но это не помогает в моей проблеме.

Как сохранить структуру экрана между различными сеансами терминала и после перезагрузки компьютера? Или, может быть, в качестве обходного пути, есть ли способ запустить экран (параметры), которые разделяют его, настроить bash для каждого окна и сохранить макет?

4 ответа4

9

Макет по умолчанию для новых экранов

Управляйте своими регионами, затем выполните код внутри экрана:

  • Чтобы сохранить текущий макет в файл .screen_layout:

    rm -f $ HOME/.screen_layout screen -X дамп разметки .screen_layout
    
  • Для автоматической загрузки с сохранением макета:

    источник эха .screen_layout >> $ HOME/.screenrc макет эха сохранить def >> $ HOME/.screenrc
    

Как это устроено

  1. Вы набираете screen .
  2. Экран читает $HOME/.screenrc:
  3. source .screen_layout - читать и выполнять команды из $HOME/.screen_layout
    Регионы сейчас созданы.
  4. layout save def - сохранить текущие регионы как макет, чтобы сохранить его при отсоединении.

layout dump .screen_layout

  • Создать (добавить) текущий макет в файл в каталоге $HOME

screen -X command

  • Выполнить command в текущем сеансе экрана (если выполняется внутри).
    Аналогично command ctrl a then :

Вы можете также

  • Отключить уведомление об авторских правах при запуске:

    echo startup_message off >> $ HOME/ .screenrc
  • Увеличить буфер прокрутки (по умолчанию 100)

    echo defscrollback 1000 >> $ HOME/ .screenrc
  • Напишите собственный .screen_layout (50% / 50% по вертикали, с 2 оболочками):

    разделить -v экран -t фокус s1 экран -t фокус s2
    
4

Ctrl - a then : затем layout save default Предоставленный экран является более новой версией (с функцией макета). Удачи.

ОБНОВЛЕНИЕ: Вот файл .screenrc , который сделает изменение постоянным , а также добавит другие полезные функции.

2

« layout autosave on » работает только для явно именованных макетов в .screenrc.

А именно, если вы указали какой-либо макет как ABC, переключились на него в сеансе Screen и отсоединились, этот последний макет будет восстановлен после возобновления сеанса.

Если вы не указали никакой компоновки в файле конфигурации, вы должны выполнить внутреннюю команду " layout save your_layout_name " перед отсоединением.

Это .screenrc с предопределенными макетами на выбор:

 0 — one (the only region)
 1 — two-v (the screen is splitted vertically into two regions, default layout)
 2 — two-h (the screen is splitted horizontally into two regions)
 3 — three (three regions — two in the upper part of the screen and one underneath)
 4 — four (four regions)

Предопределенные макеты

После выбора изнутри экрана эти макеты сохраняются при отсоединении до следующего возобновления сеанса (из-за команды "Автосохранение макета включено").

Если вы создали свой собственный макет, он должен быть сохранен с помощью команды « layout dump filename ». Затем вы можете использовать код из файла "filename", чтобы добавить свой макет в раздел #layouts этого .screenrc для выбора.

По умолчанию раскладка " two-v " загружается с единственным окном с bash.

0

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

Если вы используете экран для разделения терминала на локальном компьютере (что я понял из упомянутой перезагрузки компьютера), вы можете проверить эмулятор терминала, называемый terminator . Он поддерживает горизонтальные и вертикальные разъемы терминала (также вложенные), и вы можете сохранить ваш любимый макет для дальнейшего использования. Затем вы просто запускаете терминатор с соответствующей опцией: terminator -l <name of saved layout> .

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