fis*_*ish 6 vim ssh putty xterm mobaxterm
我最近在 Windows 机器上从 MobaXterm 7.7 更新到 MobaXterm 8.1,以满足我的 SSH 和 X11 需求。
自从这样做以来,当我进入不同的模式(即插入模式)时,我的 Vim 光标停止了变化——光标现在总是一个块光标。此外,我注意到如果我更改 MobaXterm 中的默认终端光标设置,控制台光标仍然是块光标(可能存在错误?)。
过去,我将以下几行添加到我的 .vimrc 文件中以解决光标形状,但自从更新到 MobaXterm 8.1 后,这不再有效。
let &t_ti.="\e[1 q"
let &t_SI.="\e[3 q"
let &t_EI.="\e[1 q"
let &t_te.="\e[0 q"
Run Code Online (Sandbox Code Playgroud)
我很好奇是什么原因造成的。
经过一番研究,我在 MobaXterm 8.0 更新日志中发现了以下行:
Improvement: The embedded terminal is now based on a plain PuTTY engine
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,您在 PuTTY 环境中更改光标的能力有限。这是否意味着在使用 MobaXterm 时我无法再更改 Vim 光标?或者,是否有一些我不知道的 .vimrc 命令?这一切只是一个错误还是有意为之?
谢谢!
PuTTY 的光标相关控制序列都不以“q”结尾。听起来 MobaXterm 的开发人员似乎不想费心应用他们的补丁。
检查当前的 PuTTY 源 (0.65),它具有(如预期的)“有限”更改光标外观的能力。当启用 SCO/ANSI 功能时,它会处理这些转义序列:
\e[=2c
(块光标)\e[=1c
(普通光标)\e[0c
(隐藏光标)\e[=
x ;
y (从扫描线x到yC
绘制光标)\e[?34h
另外,可以使用和来将光标更改为块光标(对于正常“VT220”模式)或从块光标更改为块光标\e[?34l
。