使用 SSH(putty)从 Windows 到 Mac 的 Shell 文本编辑器输出格式错误

使用 SSH(putty)从 Windows 到 Mac 的 Shell 文本编辑器输出格式错误

我正在使用 putty 通过 SSH 连接到 Mac,如果我尝试使用 pico、nano 或 vi 编辑文件,我会得到类似如下的输出:

[username]$ pico textEdit.txt

←)0←7←[?47h←[1;24r←[m←[4l←[?1h←=←[?1h←=←[?1h←=←[?1h←=←[H←[2J←[22B←[7m^G←[m Get Help  ←[7m^O←[m Write
←[1B←[7m^X←[m Exit←[6C←[7m^J←[m Justify   ←[7m^W←[m Where Is  ←[7m^V←[m Next Page ←[7m^U←[m UnCut Tx
t ←[7m^T←[m To Spell  ←[22;35H←[7m[ New File ]←[m←[H←[7m  GNU nano 1.2.4                 File: textEdit.txt ←[1;52H←[m

我可以更改 putty 或命令提示符的任何设置以正确显示输出吗?(我还没有找到)

编辑:我使用 plink 打开隧道,如果我以常规方式打开 putty,它就可以正常工作

我见过许多使用 GUI 编辑器而不是 Putty 的解决方案,但我宁愿使用基于 shell 的编辑器进行快速编辑。

答案1

您没有使用 PuTTY。您使用的是plink。这是有区别的。

在 Windows 上,默认控制台的工作方式与 Unix 中的终端不同 - 也就是说,它完全不理解 ANSI 转义序列(并且各种基于控制台的程序使用特殊的 API 函数来定位光标或更改颜色)。

因此,PuTTY.exe 不仅仅是一个 SSH 客户端,它本身也是一个完整的终端仿真器。同样,如果您使用 Cygwin 的ssh命令,它会使用内部的某种终端仿真层cygwin1.dll

同时,plink.exe它没有任何类似的东西,它只是一个 SSH 客户端。这意味着如果你在 Windows 控制台中运行它,你将总是查看最初发送的原始转义代码,无需任何解释。

有三种可能的解决方案:

  • plink在 MinTTY 等终端仿真器中运行;

  • ssh从 Cygwin安装;

  • PuTTY.exe将您连接到 shell;它是一个仅能绘制高级终端功能的 GUI 程序。

相关内容