问题:
在一个FreeBSD的控制台,当移动鼠标时,就会有字符输出,这是怎么回事:35;62;18m35;60;18m35;58;18m35;57;19m35;55;19m35;53;19m35;51;20m35;49;20m35;46;20m35;45;21m35;43;21m35;41;21m35;39;21m35;38;22m35;36;22m35;35;22m35;34;22m35;33;22m35;31;22m35;30;22m35;29;22m35;28;23m35;27;23m35;26;23m35;25;23m35;24;23m35;23;23m35;22;23m35;21;23m35;20;23m35;19;23m35;18;23m35;17;23m35;16;23m35;16;24m35;15;24m35;14;24m35;13;24m35;12;24m35;11;24m35;10;24m35;9;24m35;8;24m35;7;24m35;6;24m35;5;24m35;4;24m35;4;23m35;3;23m35;2;23m35;1;23m0;1;23M32;1;23M32;2;23M32;3;23M32;4;23M32;5;23M32;6;23M32;7;23M0;7;23m35;7;23m35;7;22m35;7;21m
原因回顾
在Windows10远程ssh登录192.168.1.5 FreeBSD服务器,执行codexy,未退出,后系统睡眠。
再次唤醒后Windows10后,ssh链接断掉,重新ssh登录,发现当在控制台窗口内(不需要获得焦点)移动鼠标时,屏幕就会有字符输出:类似35;62;18m35;60;18m35;58;18m35;57; ,且只要鼠标不停,字符就不停。
用其它控制台登录,没有这个问题。
咨询AI,回答说
原因可能是:
- 某些终端模拟器(如 xterm、vte-based 终端等)支持鼠标输入,并会发送特定的转义序列来表示鼠标动作。
- 如果终端或应用程序没有正确处理这些序列,它们就会直接显示在控制台上。
- 某些应用程序或 Shell 可能配置了鼠标支持,但处理不当。
- 例如,某些命令行工具或文本编辑器可能期望接收鼠标输入,但如果没有正确解析,就会显示这些字符。
解决方法:
- 在控制台上运行
reset
命令,这可以重置终端到其初始状态,有时可以解决终端显示异常的问题。
在FreeBSD控制台和Windows控制台,运行reset命令,都没有解决问题。
尝试杀进程
也许直接在Windows点右上角叉号关掉这个控制台就行了,但是,还是准备用更温和的手段来试试。
用其它控制台ssh登录FreeBSD,这时候是没有异常的。查看自己谁:
who am i
xxname pts/6 May 9 18:39 (192.168.1.2)
看看当前FreeBSD系统的控制台信息:
xxname 1639 0.0 0.1 23024 9268 - S 18:39 0:00.12 sshd: xxname@pts/6 (sshd)
root 2268 0.0 0.1 23024 8988 - Is 18:48 0:00.05 sshd: xxname [priv] (sshd)
xxname 2271 0.0 0.1 23024 9264 - I 18:48 0:00.03 sshd: xxname@pts/5 (sshd)
这样可以知道出问题的是 xxname@pts/5
kill 2271
但是再ssh上去,问题依旧。
没有办法,只好用笨方法,直接把问题终端打叉号关闭...再开终端ssh登录,发现即使登录到pts/5,也没有再发生移动鼠标调乱码的情况。
总结
具体终端输乱码的确切原因没找到,但是codexy使用了交互式 TUI 界面Textual 框架 ,所以可能是这个框架对终端造成了干扰。
使用终端命令来解决乱码问题目的没达到,最终是靠关掉Windows下终端来解决的。