当我通过 ssh 访问某台特定机器时,vim 中的 Backspace 行为会发生变化。我没有删除字符,而是输入了 ^? 。
问题是这台机器充当网关,当我访问这个网关后面的任何机器时,这个问题就会传播(当我在域内使用 ssh 连接任何这些机器时 - 无需通过域 - 我不会遇到这个问题)...
这虽然不是什么大问题,但是确实很烦人。
任何想法 ?
答案1
这通常是由于您的 shell 中的配置与终端仿真器中的配置不匹配造成的。
有些使用退格键 (0x08),有些使用 DEL (0x7f)。如果在终端会话中运行
stty -a
你会看到如下一行:
intr = ^C; quit = ^\; erase = ^?; kill = ^U; ...
那个删除的是 DEL 字符。您需要配置 SSH 以传输该字符,或者执行以下操作:
stty erase '^H'
改变外壳。
我知道 Putty 可以改变按下退格键时传输的字符。我认为它隐藏在终端部分的某个地方(至少在 v0.58 中),但我手边没有 Windows 可以检查它。
然而,事实并非如此真的与编程相关,因此您可能会发现它被转移到superuser.com。