gpt4 book ai didi

macos - 从SSH返回时维护选项卡名称

转载 作者:行者123 更新时间:2023-12-02 14:22:43 24 4
gpt4 key购买 nike

我使用多个终端选项卡,这些选项卡使用选项卡上的名称进行管理。因此,我有一个名为“python”,“workspace”等的选项卡。这些选项卡之一用于与远程计算机的SSH连接,即“ssh”。

问题是,当我SSH到远程计算机时,选项卡名称会更改以反射(reflect)我通过SSH进入的计算机的身份。很好但是,当我返回本地计算机时,选项卡名称不会重置为“ssh”,也不会重置为默认选项卡名称(当我打开新选项卡时会显示什么-我什至拥有此定义的自定义版本在我的~/.zshrc中)。

当我通过终止SSH连接回到本地主机时,是否可以重设选项卡名称?

技术细节:

  • 操作系统:Mac OS X 10.9.2
  • Shell:zsh
  • ~/.zshrc的相关部分:
    source ~/.zsh_functions
    tabn "ashwin@cortana"
    ~/.zsh_functions的相关部分:
    function tabn {
    printf "\e]1;$1\a"
    }

    最佳答案

    有一对 xterm escape sequences(大多数终端也可以识别),可以保存和恢复窗口标题。以下命令会将当前窗口标题压入堆栈:

    printf '\e[22;2t'

    这将恢复它:
    printf '\e[23;2t'

    您可以定义一个包装 ssh的函数,以自动保存当前标题并在 ssh完成后将其恢复:
    ssh () {
    # If you redirect the output of ssh to a file or a pipeline,
    # make sure these terminal sequences go to the terminal, not
    # standard output.
    printf '\e[22;2t' > /dev/tty
    command ssh "$@"
    printf '\e[23;2t' > /dev/tty
    }

    与任何堆栈一样,这假定在 ssh退出之前,弹出在远端的堆栈上的所有内容都会被弹出。

    关于macos - 从SSH返回时维护选项卡名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432412/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com