如何阻止 zsh (oh-my-zsh) 重置屏幕窗口标题?

如何阻止 zsh (oh-my-zsh) 重置屏幕窗口标题?

每当我创建一个新窗口时,gnu screen我通常都会给它一个在断开连接之间持续存在的名称,但我注意到,当我在窗口中运行命令时,标题oh-my-zsh的分配会被重置。zsh基本上它会重置为窗口号所在的(x* ~)位置。x

不仅如此,当我在该窗口中的远程会话中运行命令时,如果远程 shell 是 ,则本地设置的标题将更改为在远程窗口中运行的命令zsh。这不会发生在bash.

例如,假设我在屏幕中创建一个标题为 as 的新窗口(2* ~),然后将标题设置为user@remotehost因为我要连接到remotehostas user。当我运行ssh user@remotehost连接时remotehost,标题恢复为(2* ~).当remotehost我运行时htop,标题发生了htop我不想要的更改。

即使它连接到另一个会话,似乎zsh也会将远程窗口命令传播到本地窗口的标题中。这似乎只发生在下,zsh因为它从未发生过bash。是否有某些设置 zshoh-my-zsh覆盖以前的行为?我没有通过.screenrc切换来改变zsh,就在这里。

# got a fancy hardstatus line noted below
hardstatus on
hardstatus alwayslastline
# hardstatus string "%w"

# blagged this hardstatus like from https://bbs.archlinux.org/viewtopic.php?id=55618, not quite sure what it does
# extended from http://unix.stackexchange.com/questions/195209 and , uptime command disabled
# http://www.gnu.org/software/screen/manual/html_node/String-Escapes.html#String-Escapes
hardstatus string '%{= kG}%{C}Screen:%{Rk}Host:%H %1`%{c}%{= kG}[%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{C} %d-%m %{W}%c %{g}]'
backtick 1 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*" | cut -d '.' -f 2'
# backtick 2 60 60 /usr/bin/uptime

答案1

可以.zshrc通过取消注释行来禁用它:

# Uncomment the following line to disable auto-setting terminal title. 
# DISABLE_AUTO_TITLE="true"

它应用于函数omz_termsupport_precmdomz_termsupport_preexec,其中~/.oh-my-zsh/lib/termsupport.zsh

相关内容