单击鼠标后,PuTTY 终端中出现奇怪的 5 个字符序列

单击鼠标后,PuTTY 终端中出现奇怪的 5 个字符序列

在运行某些程序(配置)时,我的终端会变得混乱。我的打字没有显示。我可以使用“stty sane”来修复它,但我注意到每当我在终端上单击鼠标(我使用 PuTTY)时,就会出现奇怪的字符。例如

# O:#O: O:#O: 7-#7- BE#BE ...

它们似乎是 5 个字符序列,如果我单击相同的位置,则会出现相同的序列。

我知道我可以使用“重置”来修复它,但我想了解它们是什么以及是否有一种方法可以在不重置的情况下修复它。甚至可能有一种方法可以找到“配置”内部弄乱我的终端的根本原因。

答案1

这些是 xterm 风格的“老鼠”事件。原则上,您可以使用合适的printfor关闭那些echo,但它是否已经作为终端描述中or字符串reset的一部分(请参阅“infocmp”的输出)。rs1rs2

reset例如使用这个:

    rs1=\Ec,                                                                
    rs2=\E[!p\E[?3;4l\E[4l\E>,

并更喜欢后者(前者是硬重置)。是\E转义字符。顺便说一句,第一个块rs2\E\[!p是软重置,通常会重置鼠标以及大多数其他有用的东西。 printf 是

printf '\033[!p'

这比打字更多

reset

echo(即使您使用一些了解的非标准\E)。但是关于箭头键的评论:软重置将光标键放回正常模式,而 vi 认为它们处于应用程序模式。

要仅禁用鼠标,请查看以下输出infocmp -x

XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,

这告诉 ncurses 如何启用/禁用鼠标。您的终端描述不完全正确,但是1000正常鼠标模式你的例子表明了这一点。所以...你可以这样做

printf '\033[?1000l'

(小写 L 禁用),然后只杀死鼠标。

您看到这些是因为“某些程序”无法自行清理。

相关内容