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