1

я делаю

ssh -t host screen -D -RR

в OS X (10.9) вкладки терминала.

Мой ~/.screenrc идентичен на всех удаленных хостах и содержит следующую строку:

hardstatus string "%H(%n:%t)$USER %h"

Мой ~/.bashrc также идентичен на всех хостах.

Когда я вхожу в хост host_u (Ubuntu 12.04.3 LTS) с работающей Screen version 4.00.03jw4 (FAU) 2-May-06 , заголовок вкладки на терминале OS X выглядит как host_u(1:bash)sds ~ , как и ожидалось.

Когда я вхожу в хост host_c (CentOS release 6.3 (Final)) с работающей Screen version 4.00.03 (FAU) 23-Oct-06 , заголовок вкладки на терминале OS X выглядит как ~/FooBar (это локальный каталог OS X из который я выполнил команду ssh/screen .

Проблема: строка hardstatus не работает на host_c .

Дополнительная информация:

.screenrc:

termcapinfo xterm* ti@:te@

И на host_c и на host_u TERM имеет xterm-256color (унаследованный от терминала OS X).

1 ответ1

1

Чтобы установить hardstatus, экран должен знать правильные коды выхода для отправки на терминал (эмулятор); они найдены через termcap/terminfo. Соответствующие возможности:

  • hs - если установлено, терминал поддерживает линию жесткого статуса
  • ts - переместить курсор на строку жесткого диска ("начало")
  • fs - переместить курсор назад туда, где он был раньше ("финиш")
  • ds - как очистить / сбросить hardstatus ("по умолчанию").

Ни у кого больше нет реальной линии "hardstatus". Чтобы использовать заголовок xterm или других эмуляторов графического интерфейса, необходимо установить возможности; чтобы избежать путаницы в программах, они не установлены в обычных базах данных termcap/terminfo. Вы можете добавить их туда или сообщить экрану, какими они были бы, если бы они были установлены, в вашем .screenrc:

termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
(Это устанавливает заголовок по умолчанию "screen", который вряд ли будет актуален. Фактические escape-коды могут отличаться в зависимости от вашего эмулятора терминала - в частности, для некоторых вариантов xterm 0 в \E]0; может не потребоваться или может потребоваться другое значение; проверьте страницу руководства вашего эмулятора терминала.)

Эти настройки будут использоваться экраном, но не будут доступны для других приложений; Например, если у вас есть редактор, который хочет переопределить hardstatus, он будет искать реальный termcap, найдет hs unset (или каким-либо другим системным значением по умолчанию) и будет знать, что этого не делать.

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