我最近开始在远程服务器上租用空间,以便我可以处理一个项目。我发现在 Windows 机器上访问它的一种相对轻松的方式是通过 PuTTY。然而,在使用它时,有一件事情总是让我感到恼火:有时似乎没有理由在光标处插入随机字符。
大多数时候它只是一个波浪号,但很少会吐出看起来像一些转义序列([[^8 或类似)的东西。它只会在我专注于窗口时发生,无论是打字还是距离键盘 20 英尺。如果放置时间足够长,它会以随机间隔(平均约为 1 分钟)吐出波浪号。
最后,这种行为在运行 nano 或 mysql 界面等程序时似乎不一致:在 nano 中,不是插入波浪号,而是设置标记 (ctrl-^);在 mysql 中,行将变得不可编辑。
我的问题是:有没有其他人在 PuTTY 中经历过这种行为?如果是这样,可以采取哪些措施来防止/纠正这种行为?
小智 46
我在 PuTTY 上遇到了同样的问题,发现这是由我称为“caffeine”的应用程序引起的,该应用程序每分钟有效地按 F13 键以停止激活屏幕保护程序(组策略阻止我更改屏幕保护程序超时)我的机器)。禁用应用程序解决了我的问题。
shr*_*nsp 18
如果您更喜欢运行 Putty 和 Caffeine,请按照以下步骤操作:
F15Ctrl+V(这是获取密钥的特殊代码所必需的。例如,尝试Ctrl+V后跟F12)F15is ^[[28~,其中^[是转义符)。停止咖啡因~
~/.inputrc(如果不存在则创建一个新文件)"\e[28~":""~那个 linux 服务器上使用 Putty 终端时不应该有更多的随机性Pet*_*ria 11
我发现shreyansp的解决方案是最(但不是很)令人满意的解决方案:)
这是我改进它的尝试(当然是 YMMV)。希望这对那些寻找解决方案的人有用:)
我的解决方案如下:
TL;DR:我的解决方案在第 2 步和第 3 步(见下文)之间应用了-key:0E咖啡因参数:
退出咖啡因并重新启动它:(
caffeine.exe 5 -key:0E为了便于测试)
caffeine.exe 50 -key:0E(对于设置为 1 分钟的强制性屏幕保护程序)
read在远程主机上启动程序并观察每 5 或 50 秒没有收到任何击键的情况。read与Ctrl+C
Shreyansp提出了一个解决方案,其中将在第 5 步和第 10 步之间应用修复程序(见下文)。
这样做的副作用(在我的配置上)是,每次击键后,腻子都会从咖啡因转发到远程主机:
'"\e[28~"'到'""'(空白键?)导致远程会话交互挂起几秒钟为了轻松测试上述内容,请退出 Caffeine 并以 5 秒间隔和 Virtual-Key Code 07 重新启动它:
caffeine.exe 5 -key:07
read在远程主机上启动程序并观察如何每 5 或 50 秒接收一次击键。read与Ctrl+C
据我了解,击键“管道”:
$TERM=xterm,vt100,vt102,vt220,等等)从“线路协议”成键码转换。~/.inputrc~/.bashrc(基于内置的 bind 命令)做一些翻译/映射screen程序(其中包括$TERM=screenfor 步骤 5. 并在步骤 6. 到 10. 处再次循环),该管道可以变得更长。注意:一旦进入第 4 步,就很难精确控制“翻译”/“映射”的不同层。如果可以,我建议避免这种情况。
背景:在不得不处理 pfsense 2.3.3-RELEASE-p1(基于 FreeBSD 10.3-RELEASE)之前,
我使用caffeine.exe -key:07了多年。
然后,caffeine.exe -key:07在另一边被接收为^[[28~...似乎映射到Ctrl+^Nano 中的 (Set Mark)。
这很烦人(想象一下,当您在记事本中移动文本插入符号时,有人按住 Shift 键并按住不放)。
以前,我做了很多定制的腻子设置,~/.tcshrc,~/.inputrc,~/.bashrc,~/.nanorc,~/.screenrc得到什么,我认为基本的功能(Backspace,Delete,Home,End,PgUp,PgDown,Ctrl+Left,Ctrl+Right,小键盘0-9,小键盘./*-+)的bash /纳米/屏幕之间持续的工作。
一旦我发现了这个caffeine.exe -key:07“错误”,我就不想再追溯了:)
测试:
Windows 8.1 64 位企业版 (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1(基于FreeBSD 10.3-RELEASE)/ bash 4.4.12-release / nano 2.7.3 / screen 4.04。 00
参考:
咖啡因:
Undefined适用于您的设置的第一个代码)Readline/inputrc/bash/bashrc/(builtin) 绑定:
油灰: