从 OS X 终端 ssh 连接的 Linux 服务器上的全屏应用程序缺少一行的第一个字符

从 OS X 终端 ssh 连接的 Linux 服务器上的全屏应用程序缺少一行的第一个字符

在此处输入图片描述我在使用 Mac OS X Snow Leopard 上的终端应用程序时遇到了问题。

我使用 ssh 连接到远程 Linux 服务器并执行配置文件编辑。

由于某种原因,它有时会在连接到 Linux 服务器时丢失字符。我在确定这个问题并使其以可重复的方式发生时遇到了问题 - 不幸的是这是我想到的最好的方法:

  1. 连接到 Ubuntu 8.04 服务器

  2. nano使用(全屏应用程序)编辑一些文本文件

  3. 文本文件的第一行缺少该行的第一个字符(最左边的字符)。例如,如果文本文件包含行“asdf”,您将看到“sdf”。

  4. 如果将光标移动到此位置,字符将返回到该位置(该线由 nano 重新绘制)

  5. 调整终端应用程序窗口的大小不会恢复任何字符

  6. 如果你在 nano 中点击刷新(CTRL+L),字符将再次丢失

less在一些其他终端应用程序中也观察到了同样的问题。

该问题在 Gnome 终端或其他终端应用程序中无法重现,因此与服务器配置无关。但是,我在两个不同的 OS X 安装中都遇到了同样的问题,因此它可能与我的默认设置有关。

我怀疑这可能与 UTF-8 编码或终端设置有某种关系,但我还没有弄清楚哪个设置会触发它。

使用的ssh客户端是:

 OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011

编辑

这实际上也可以在本地 OSX 上重复,并且与 Ubuntu 无关。

安装 Macports(不确定是否需要)并使用以下 GNU nano 编辑文本文件:

GNU nano version 2.0.6 (compiled 11:42:28, May 18 2009)
Email: [email protected] Web: http://www.nano-editor.org/
Compiled options: --disable-nls --enable-color --enable-extra --enable-multibuffer --enable-nanorc

设置以下终端相关的环境变量:

    TERM=ansi
    TERM_PROGRAM=Apple_Terminal
    TERM_PROGRAM_VERSION=273.1

在 Terminal.app 中,它显示模拟是 ansi 并且编码为 UTF-8。

仍然不确定哪个是触发组合(哪个终端模式等)

答案1

我解决了在 OS X 终端设置中遇到的类似问题:配置文件、高级,并将“将终端声明为”下拉框更改为 xterm-256color。

答案2

您描述的问题典型地是由于 TERM 环境变量的值不正确造成的。具体来说,Ubuntu 上的 TERM 变量值选择了一组与 OS X 终端应用程序不匹配的终端功能和能力。

如果 TERM 设置为类似的xterm-color或,xterm-256color请尝试将其设置为其他值(例如,我提到的两个中的另一个,或普通的xtermansivt220)。


更新:

在 OS X Terminal.app 中,尝试以下命令

TERM=ansi nano googlef916dafa821844e0.html
TERM=vt220 nano googlef916dafa821844e0.html
TERM=xterm nano googlef916dafa821844e0.html
TERM=xterm-color nano googlef916dafa821844e0.html    
TERM=xterm-256color nano googlef916dafa821844e0.html

答案3

看起来终端只是有缺陷。

我建议使用iTerm 2反而。

iTerm2 是 Terminal 的替代品,也是 iTerm 的后继者。它适用于装有 Leopard、Snow Leopard 或 Lion 的 Mac。它注重性能、国际化以及支持创新功能,让您的生活更加美好。

相关内容