byobu 在 ssh 会话中重命名 windows

byobu renames windows in ssh session

我使用 ssh 连接到远程计算机并在远程计算机上启动 byobu 会话。每当我更改 byobu window 中的目录时,window 就会重命名为 username@remote-pc:~/.../.../...。当我使用 F8 重命名 window 时,该名称会一直保留到下一个 cd

我怎样才能避免这种情况?

我在 Fedora 上遇到了同样的问题。

在每个 bash 会话中,PROMPT_COMMAND/etc/bashrc 中默认设置为 __vte_prompt_command

man bash

PROMPT_COMMAND
If set, the value is executed as a command prior to issuing each primary prompt.

__vte_prompt_command 定义在 /etc/profile.d/vte.sh

type __vte_prompt_command 给出

__vte_prompt_command is a function
__vte_prompt_command () 
{ 
    local pwd='~';
    [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/};
    printf "3]0;%s@%s:%s[=11=]7%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
}

为防止这种情况,您可以在 ~/.bashrc

中采购 /etc/bashrc 之后添加 unset PROMPT_COMMAND

您可能还想只在 byobu 会话中执行此操作,您可以为此测试 byobu 环境变量(BYOBU_RUN_DIR?)

此答案适用于 zsh 用户。

我已经用 zsh 遇到过两次这种情况。令人沮丧。在这里发帖,以便我将来可以搜索解决方案(并希望能帮助任何其他迷失的灵魂)。

~/.zshrc中你会发现

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

取消注释掉 DISABLE_AUTO_TITLE="true" 这样看起来像

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

别担心,未来的我

使用 tmux 时,您可以通过将以下内容添加到 ~/.byobu/.tmux.conf 来防止任何程序重命名 window:

set-option -g allow-rename off