6

Я пытаюсь улучшить аспект экрана GNU с помощью файла screenrc, настроил цвета, строку состояния, заголовок и список загруженных окон.

Единственное, чего я не могу достичь, это получить подпись с помощью текущей выполненной команды, как показано на рисунке ниже, обратите внимание на заголовок vim на правой панели:

В настоящее время у меня есть это, и я хотел бы получить подписи (и, если возможно, также строку hardstatus) с |0 less| 1 man вместо текущего |0 bash| 1 bash

Как я могу это сделать?

Обновление: до сих пор единственное рабочее решение, которое я нашел, находится в этом посте, но оно не печатает то, что мне нужно ...

Однако это единственное рабочее динамическое название, которое я нашел до сих пор.

PROMPT_COMMAND='echo -ne "\033k\033\134\033k${HOSTNAME}[`basename ${PWD}`]\033\134"'`

в .bashrc и shelltitle '] |bash' в .screenrc. Заголовок обновляется с указанием имени хоста и базового имени рабочего каталога, но приглашение совершенно неверное (оно также имеет начальный пробел):

134134fabio@host10:~$

2 ответа2

7

В вашем файле .bashrc установите PROMPT_COMMAND следующим образом:

ОБНОВЛЕНИЕ:

case "$TERM" in
    screen*) PROMPT_COMMAND='echo -ne "\033k\033\0134"'
esac

ОБНОВЛЕНИЕ: похоже, ошибка с эхом, встроенным в bash. Решением должно быть использование /bin/echo или \0134 . Пытаться:

$ echo -e "\134 = \0134"
\134 = \
$ /bin/echo -e "\134 = \0134"
\ = \

Это escape-последовательность, которая необходима экрану, чтобы определить, какая команда выполняется, и заменить заголовок вашего текущего окна.

Затем в файле .screenrc убедитесь, что существуют следующие строки:

shelltitle '> |something:'
hardstatus alwayslastline

Поиск по шаблону search|name указывает экрану search end-of-prompt некоторую строку (в данном случае '> '). Часть name, указывает имя оболочки по умолчанию для окна. Итак, когда у вас ничего не работает, кроме оболочки, вы увидите что-то вроде:

$ something:

Но когда вы бежите сверху:

$ something:top
2

В качестве альтернативы вы можете использовать tmux вместо screen . Tmux автоматически установит заголовок текущего окна.

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