我使用多个 Vim 快捷键,例如AltGr+ i、AltGr+ q、AltGr+b等。当我使用 PuTTY 通过 SSH 连接到 Linux 计算机时,这些按键不会传递到vim
远程主机。波兰变音符号(例如ą
( AltGr+ a)、ż
( AltGr+ z)、ó
( AltGr+ o))可以正确传递。
有没有办法让我的快捷方式也能用?我找不到任何可以启用它们的设置。
我正在使用 PuTTY,但我可能会接受涉及另一个适用于 Windows 的 SSH 客户端的解决方案,该解决方案不存在此类问题(我检查过 MobaXterm,但不是)。
答案1
您无法通过 ssh 传递“组合键”,您唯一可以通过 ssh 传递的是字符。波兰变音符号会在本地转换为正确的 (unicode) 字符,因此它们可以正常工作。
如果您将本地端配置为为键代码生成正确的字符序列(可能是 ESC 序列),并将远程端的 vim 配置为接受这些序列,那么您也可以通过 ssh 传递这些序列。
答案2
我找到了我需要的解决方案。基本上, Windows 上的AltGr+ i、AltGr+q等按键产生的代码与 Linux 上的不同。解决方案是修改按键产生的代码。我使用了自动热键为了这个目的。安装 AutoHotkey 后,我创建了一个脚本my_win_autohotkey.ahk
:
<^>!i::SendInput {raw}→
<^>!b::SendInput {raw}”
<^>!q::SendInput {raw}π
<^>!f::SendInput {raw}æ
<^>!t::SendInput {raw}ß
<^>!0::SendInput {raw}»
<^>!r::SendInput {raw}©
并执行它。这生成了+AltGr等等,就像在 Linux 上一样。我还将脚本添加到了 Startup(Windows 10 上的文件夹),因此系统重启后无需手动运行它。现在,我的 Vim 快捷方式也可以通过 PuTTy 工作了 :-)i→
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup