每当我创建一个新窗口时,gnu screen
我通常都会给它一个在断开连接之间持续存在的名称,但我注意到,当我在窗口中运行命令时,标题oh-my-zsh
的分配会被重置。zsh
基本上它会重置为窗口号所在的(x* ~)
位置。x
不仅如此,当我在该窗口中的远程会话中运行命令时,如果远程 shell 是 ,则本地设置的标题将更改为在远程窗口中运行的命令zsh
。这不会发生在bash
.
例如,假设我在屏幕中创建一个标题为 as 的新窗口(2* ~)
,然后将标题设置为user@remotehost
因为我要连接到remotehost
as user
。当我运行ssh user@remotehost
连接时remotehost
,标题恢复为(2* ~)
.当remotehost
我运行时htop
,标题发生了htop
我不想要的更改。
即使它连接到另一个会话,似乎zsh
也会将远程窗口命令传播到本地窗口的标题中。这似乎只发生在下,zsh
因为它从未发生过bash
。是否有某些设置 zsh
或oh-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_precmd
和omz_termsupport_preexec
,其中~/.oh-my-zsh/lib/termsupport.zsh