0

当我从 cygwin 运行 EMACS 时,它又从 ConEmu 运行,dosent 显示 emacs 颜色主题。

但是如果我在没有 conemu 的情况下运行相同的配置,我可以看到主题正确显示。

我如何设置我的 conEmu 以正确显示 256 色并显示 EMAC 中的所有颜色主题。

我的设置:

Environment: Windows 7
Command Prompt : ConEmu 
emulator : cygwin
editor : EMACs

编辑:我用过

alias emacs='TERM=xterm-256color emacs'

之后,ConEMU 会显示中间有空格的窗口。在 cygwin 提示符下运行良好。

4

2 回答 2

2

如果您在控制台窗口中运行 emacs,它可能正在使用 termcap/terminfo。在这种情况下,它会注意 $TERM 环境变量。也许当您设置 coneum+cygwin 配置时,$TERM 值与您设置它的其他方式不同。

从技术上讲,termcap 不支持 256 色,因此无论 $TERM emacs 使用什么都是一种折衷方案(恰好可以工作的特殊值)。ncurses 常见问题解答中提到了这一点:为什么不将“xterm”等同于“xterm-256color”?

一些程序(例如 PuTTY)允许为其进程设置环境变量。我在 ConEmu 的文档中没有看到这一点。如果它缺少该功能,我想您可以根据需要在 Windows 环境或 .bashrc 中设置 TERM

关于具有 256 色的 Emacs 的一般主题:

ConEmu 的wiki中有一个提示可能有用:它指出

Vim 的可执行文件必须命名为 'vim.exe';

这让我怀疑 ConEmu 有一些特殊功能,可以在设置其他两个配置设置(来自 wiki)时查找这个特定名称:

检查选项 '<a href="https://code.google.com/p/conemu-maximus5/wiki/ConEmuHk" rel="nofollow noreferrer">Inject ConEmuHk' 和 'ANSI X3.64 / xterm 256 colors' on特色页面;在颜色页面上选中选项“TrueMod(24 位颜色)支持” ;

如果是这样,您可以尝试一种解决方法,通过

  • 重命名emacs.exevim.exe
  • 添加一个名为 的批处理文件emacs.bat,其中包含

    @echo off

    emacs.exe %*

如果您碰巧有一个vim.exe,可以修复批处理文件以使用实际路径名emacs.exe(但这应该足以开始研究解决方法)。

于 2015-03-08T01:32:52.917 回答
0

Cygwin or Msys do not support 256 colors in ConEmu. They do not know that ConEmu can process xterm-256 and they do processing internally. Of course they bumps into standard console limitation of 16 colors.

Read more in wiki1, wiki2.

I know only one application - official Vim - which can be configured to use xterm-256 in ConEmu.

于 2015-03-08T04:02:00.067 回答