V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
itskingname
V2EX  ›  问与答

ssh 断开以后,在终端鼠标点击或者滚动都会出现奇怪的控制字符

  •  
  •   itskingname · 2022-08-29 14:06:37 +08:00 · 910 次点击
    这是一个创建于 819 天前的主题,其中的信息可能已经有所发展或是发生改变。

    macOS + iTerms + zsh + oh-my-zsh

    1. 在 iTerms 上面新建标签页
    2. ssh 链接远程服务器,在远程服务器开启 tmux
    3. 放着不管。等一段时间,让 ssh 自动断开
    4. 现在你在 iTerms 窗口上面点击鼠标左键,或者滚动鼠标滚轮,就会出现下面这种控制字符:
    0;49;104M0;49;65;57;90;
    

    此时,鼠标滚轮失效,无法滚动,也无法反选任何内容。鼠标的任何操作都只能在 iTerms 上面生成更多这样的控制字符。

    目前我的解决办法只有关闭 iTerms 标签页,新开一个。

    大家有什么办法解决吗?

    6 条回复    2022-08-29 21:21:06 +08:00
    LindsayZhou
        1
    LindsayZhou  
       2022-08-29 16:01:00 +08:00
    原因应该是用了什么 ansi code 没有结束恢复。我不太懂 ansi code ,你可以去查一下怎么用,应该是 echo 一个特殊字符就好了。
    如果稍微暴力一点,就用 reset 命令,手动也行,每次 ssh 结束自动跑一下也行,只是终端会闪一下。

    参考链接:
    https://askubuntu.com/questions/25077/how-to-really-clear-the-terminal
    https://unix.stackexchange.com/questions/315395/how-to-automatically-run-a-command-after-exiting-ssh
    LindsayZhou
        2
    LindsayZhou  
       2022-08-29 16:10:17 +08:00
    `printf \\033c` 可以试一下,参考 https://zh.wikipedia.org/zh/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97 结尾
    lululau
        3
    lululau  
       2022-08-29 16:49:28 +08:00
    如果你说的是 iTerm2 的话,reset session 就可以了
    ysc3839
        4
    ysc3839  
       2022-08-29 17:42:12 +08:00
    执行 reset 命令即可。这是因为 tmux 开启了鼠标输入,但异常断开连接后没有关闭。
    itskingname
        5
    itskingname  
    OP
       2022-08-29 21:20:51 +08:00
    @lululau
    itskingname
        6
    itskingname  
    OP
       2022-08-29 21:21:06 +08:00
    @LindsayZhou 感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:03 · PVG 23:03 · LAX 07:03 · JFK 10:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.