1

我的设置适用于一台计算机(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 文件中写的,什么可以给屏幕动态地将当前路径作为标题的指令?以及如何覆盖它?

4

0 回答 0