【问题标题】:Emacs 256 colors not working using PuTTY and screenEmacs 256 色无法使用 PuTTY 和屏幕
【发布时间】:2012-04-23 01:05:19
【问题描述】:

我在使用 emacs 23.1.1 使用 PuTTY 和屏幕进行连接时无法获得 256 种颜色。服务器正在运行 CentOS 5.6。

在我的 PuTTY 配置中,我的终端类型字符串设置为 xterm-256color。在我的.screenrc 我有term xterm-256color 一次在屏幕上tput colors 给我256echo $TERM 给我xterm-256color,但是一旦我启动emacs M-x list-colors-display 只给我8 种颜色。

不确定是什么问题。

谢谢。

【问题讨论】:

  • 我想我应该提一下,我在另一台运行 CentOS 4.5 的服务器上工作了 256 种颜色,但已经迁移到运行 CentOS 5.6 的新服务器上。我将我的 .emacs 和 .screenrc 从第一台服务器复制到第二台服务器。也许这表明 CentOS 5.6 存在问题。
  • 另外,如果我只是连接到服务器并运行 emacs 而不启动屏幕会话,M-x list-colors-display 会列出更多颜色,但前 8 种颜色之后的颜色显示为正常的前景色和背景色(白色和黑色),而不是列出的颜色。
  • stackoverflow.com/a/7629752/391315 有什么帮助吗?

标签: emacs putty emacs23


【解决方案1】:

我遇到了同样的问题。

要解决这个问题,只需将其添加到 ~/.bashrc(是的,我使用 bash)

# -----------
export TERM=xterm-256color
export TERMCAP=
# ------------

在屏幕窗口中运行 screen 和 emacs。现在好了。

版本:

bash-4.2.45

emacs-24.3_10

屏幕版本 4.00.03 (FAU) 23-Oct-06

【讨论】:

    【解决方案2】:

    您的~/.screenrc 应为:

    term screen-256color

    (这不应该与xterm-256color混淆)

    【讨论】:

      【解决方案3】:

      Putty 具有允许 256 色模式的设置。它在窗口/颜色下,标记为“允许终端使用 xterm 256 色模式”。确保它已被选中。

      加载 emacs 后,您可以确认 emacs 使用的 TERM 值:

      (assoc 'tty-type (frame-parameters (car (frame-list))))
      

      应该是(tty-type . "xterm-256color")

      【讨论】:

      • 是的,PuTTY 中已经开启了 256 色模式。此外,lisp 命令确实返回了预期值。
      【解决方案4】:

      尝试在守护程序模式下使用 emacs (emacs --daemon),并打开 emacsclients (emacsclient -t) 而不是使用 screen/tmux。这将使您在调试时少处理一个变量。

      【讨论】:

        【解决方案5】:

        查看您的帖子和您对其他人的回复,听起来您的问题是……屏幕。为了检验我的假设,试试这个...

        $ wget http://www.frexx.de/xterm-256-notes/data/256colors2.pl
        $ chmod 755 256colors2.pl
        $ ./256colors2.pl
        

        ...如果您在外壳中看到 256 种颜色,但在屏幕中没有,则问题出在屏幕上。而且,即使有其他问题,您也必须修复屏幕才能在 emacs 中看到 256 色;)

        我最近在没有 sudo 的系统上为自己解决了这种情况,方法是构建个人屏幕副本。屏幕很小,没什么大不了的……而且,恕我直言,带有 256 色的 emacs 非常值得费心。

        在 Linux 2.6.x 上我这样做了:

        $ wget ftp://ftp.gnu.org/gnu/screen/screen-4.0.3.tar.gz 
        $ tar -xf screen-4.0.3.tar.gz
        $ cd screen-4.0.3
        $ ./configure --prefix=$HOME --enable-colors256
        $ make
        $ make install 
        

        用 ... 测试新屏幕

        $ ~/bin/screen
        $ ./256colors2.pl
        

        ...如果可行,请将其放入您的 ~/.bashrc:

        PATH=~/bin:$PATH ;导出路径

        我最终报告的屏幕是早期版本...

        $ ~/bin/screen -v
        Screen version 4.01.00devel (GNUdf0777e) 2-May-06
        

        ...比我系统上的版本:

        $ /usr/local/bin/screen -v
        Screen version 4.00.03 (FAU) 23-Oct-06
        

        虽然他们都声称支持 256 色...

        $ tput colors 
        256
        

        只有新版本才能真正做到。对!

        【讨论】:

          【解决方案6】:

          我有类似的困难,我相信这两条线都是 screen、putty 和 emacs 与 256 色相处所必需的。

          termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
          term xterm-256color
          

          你可能也需要这条线。

          defbce "on"
          

          如果这还不够,请说出来。

          【讨论】:

          • 谢谢,但我的 .screenrc 中已经有了所有这些行。
          • 一些随机建议。查看项目#1 和#2 [这里][emacswiki.org/emacs/PuTTY#toc2]。 ncurses 术语的建议对我来说很熟悉。我可能不得不自己这样做才能使自己的设置正常工作。但现在细节让我难以捉摸。如果这不起作用,请考虑尝试 tmux 以查看是否至少可以使其起作用。如果您不想进行切换,我将不胜感激,但摆弄 tmux 可能会显示通往工作屏幕配置的方法。
          【解决方案7】:

          我在使用 putty 和 screen 时遇到了类似的问题,但没有使用 emacs。在ataylor 的回复之后,我去了Putty 中的Window/Colors。在那里我找到并检查了“使用系统颜色”。这解决了我的问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-11-13
            • 2012-04-28
            • 1970-01-01
            • 2010-12-20
            • 2017-03-15
            • 2014-03-07
            • 1970-01-01
            相关资源
            最近更新 更多