GNU屏幕动态标题

时间:2018-10-03 22:44:10

标签: gnu-screen zshrc screenrc

我有一种设置可以在一台计算机(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文件中写的内容,什么可以给屏幕以动态方式将当前路径作为标题的说明?以及如何覆盖它?

0 个答案:

没有答案