我的设置适用于一台计算机(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 文件中放入的内容,它使 shell 输出标题转义序列(esc k title esc),如此处要求的https://www.gnu.org/software/screen/manual/html_node/动态标题.html
.zshrc:
preexec () {
if [[ $TERM == screen* ]]; then
print -Pn '\ek%~ $1\e\\'
fi
}
where%~
代表当前路径,$1
是在提示符中输入的字符串
但是经过几次测试,我知道运行 ubuntu 的计算机不会听我在 .zshrc 文件中放入的内容,但它无论如何都会扩展%t
到路径中(所以我将路径作为标题,而不是路径加提示命令)
如果不是我在 .zshrc 文件中写的,什么可以给屏幕动态地将当前路径作为标题的指令?以及如何覆盖它?