У меня есть настройка, которая работает на одном компьютере (linux mint 18.3 sylvia), а не на другом (Ubuntu 14.04.5 LTS), и я не знаю, что нужно проверить, чтобы найти проблему:
Я использую экран GNU и помещаю имя каждого окна, которое изменяется динамически, когда я меняю каталог или запускаю задачу.
например, если я предложу cd ~/desktop
, оно покажет ~/desktop cd ~/desktop
,если тогда я подскажу cd ..
, он покажет ~ cd ..
.
. Проблема в том, что на втором компьютере он не работает, точнее, наполовину, но я не понимаю, как.
вот как должна работать конфигурация: одна часть находится в файле .screenrc, а другая - в файле .zshrc.
.screnrc:
hardstatus string "%{= KW}%n %t %=%c %D %d-%m-%y"
%t
является частью для заголовка, и ее следует расширить с помощью PATH_SPACE_STRING
, она работает благодаря тому, что я поместил в файл .zshrc, который заставляет оболочку выводить escape-последовательность заголовка(esc k title esc), как указано здесь https://www.gnu.org/software/screen/manual/html_node/Dynamic-Titles.html
.zshrc:
preexec () {
if [[ $TERM == screen* ]]; then
print -Pn '\ek%~ $1\e\\'
fi
}
, где %~
обозначает текущий путь, а $1
строка, набранная в приглашении
, но после нескольких тестов я понимаю, что компьютер под управлением Ubuntu не слушает то, что я вставил в файл .zshrc, но все равно расширяет %t
в путь (поэтому у меня есть путь в качестве заголовка, а не путь плюс команда приглашения)
что может дать screen инструкция динамически помещать текущий путь в качестве заголовка, если не то, что я написал в файле .zshrc?и как его перезаписать?