【问题标题】:Strange characters in ansi-term in emacsemacs中ansi-term中的奇怪字符
【发布时间】:2012-12-31 03:12:06
【问题描述】:

我写了一个 c++ 程序,当我在 ansi-term 中使用 g++ 编译它时,显示了一些奇怪的字符:

如果需要,错误是我没有声明变量 n。我该如何纠正这个问题?

【问题讨论】:

  • 看起来您正在使用gccfilter 或类似的东西来为您的输出着色。这些是终端转义序列。

标签: emacs elisp ascii emacs23 emacs24


【解决方案1】:

啊!测试了这个...

 (setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

问题解决了!!!

【讨论】:

    【解决方案2】:

    看起来gcc 输出包含 UTF-8“智能引号”,并且您的终端未设置为显示 UTF-8。简单的解决方法是在 Emacs 中使用不支持智能引号的 locale,这应该强制 gcc 回退到纯简 ASCII 引号;更复杂的修复方法是修复 Ansi-Term 缓冲区中的终端模式以正确显示这些内容。

    【讨论】:

      【解决方案3】:

      这些很可能是颜色转义序列。 emacs 有一个模式,您可以使用 ansi-color-for-comint-mode-on 函数启用该模式。

      【讨论】:

      • @sudeepdino008 - 它有什么作用吗?
      • 没有。我尝试了各种方式,没有任何反应。没有消息,什么都没有。
      • @sudeepdino008 - 如果您在终端窗口中运行 'ls --color=tty' 会发生什么?
      • @sudeepdino008 - 另外,“TERM”环境变量的值是多少?
      • 正确。所以当我执行 ls --color=tty' 时,我会得到以不同颜色列出的文件夹和文件。当我回显 $TERM 时,我得到 eterm-color。
      猜你喜欢
      • 1970-01-01
      • 2012-09-12
      • 2011-03-18
      • 2011-02-22
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多