当我使用 emacs 打开文件时,它会添加12;rgb:1c1c/1c1c/1c1c
到顶部。我怎样才能防止这种情况?
我已经在干净重新安装的 debian 系统上安装了 emacs。
Emacs:GNU Emacs 24.4.1
终端模拟器:MobaXterm Personal Edition v7.7
系统(本地):Windows 7 Ultimate
系统(远程):Debian 8.0 "jessie" stable
如前所述,“MobaXterm”不是“xterm”。根据其网页,它是
基于具有抗锯齿字体和宏支持的 PuTTY/MinTTY
缺少详细的更改历史记录以及 OP 报告的问题,似乎 MobaXterm 不久前是基于 PuTTY 的,并且没有实现 PuTTY 所做的所有控制序列,更不用说 xterm 的控制序列了。
无法识别的特定序列(参考XTerm Control Sequences)可能是这样的:
OSC Ps ; Pt ST
OSC Ps ; Pt BEL
...
Ps = 1 2 -> Change text cursor color to Pt.
这是 xterm 中早于 ANSI 颜色支持的一组控件的一部分,称为动态颜色。
根据其他地方的评论,似乎问题可能出在 OP 的 Emacs 配置中,通过使用脚本进行临时测试TERM
来决定它是否可以做颜色,而不是检查终端功能。请参阅终端 emacs 颜色仅适用于 TERM=xterm-256color,其中有人通过修改它们init.el
以添加特殊情况来解决此问题rxvt
和xterm
。
Emacs 当然能够在不同的终端上做颜色。请参阅基于 $TERM 环境变量的 emacs 颜色以获取注释。并且TERM=xterm
在 Debian 上提供颜色已经有一段时间了。所以在典型的配置中,颜色应该“正常工作”。
但是,配置 Emacs 有不同的方法。尝试重用一些 256 色脚本可能会落入开发人员挖的坑,他们认为每个终端都和他们面前的终端一样。有关示例,请参阅 Emacs wiki 页面X 术语颜色。
!!已在 MOBAXTERM 8.2 版中解决!
看起来您的终端设置不同步。您终端的设置需要与服务器上的 termcap/terminfo 设置一致。尝试将TERM
服务器上 shell 中的变量设置为更匹配您终端的终端仿真能力的值(常用值为xterm
、xterm-color
、vt520
和vt102
)或相应地更改终端的设置以匹配当前TERM
值。(如果终端有问题,您可能需要反复试验才能找到适合您的模式。)
VT220 工作正常;编辑会话/终端设置/类型:vt220