You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

全新安装最新版doom.emacs后模式行出现乱码,如何解决?

解决Doom Emacs模式行中文编码乱码问题

刚装完最新版Doom Emacs就碰到模式行乱码?别慌,这大概率是字体、编码配置或者模块兼容性的问题,我给你捋几个靠谱的解决步骤:

  • 先搞定字体适配问题
    模式行乱码最常见的原因就是当前用的字体不支持中文字形。先在Emacs里敲M-x describe-font看看当前激活的字体,如果是纯英文字体(比如Consolas、Fira Code),那肯定显示不了中文。
    你需要在~/.doom.d/config.el里指定一款系统已安装的中文字体,比如:

    (setq doom-font (font-spec :family "Noto Sans CJK SC" :size 14 :weight 'normal)
          doom-variable-pitch-font (font-spec :family "Noto Sans CJK SC" :size 16))
    

    换成你系统里有的字体就行,比如Windows的"微软雅黑"、Mac的"PingFang SC"都可以。

  • 强制统一UTF-8编码
    编码不统一也会搞出乱码。在config.el里加上这些配置,把所有编码逻辑锁死在UTF-8:

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

    另外别忘了检查系统的LANG环境变量,终端里敲echo $LANG,如果显示的不是zh_CN.UTF-8或者en_US.UTF-8,得调整一下:Linux在~/.bashrc或~/.zshrc加export LANG=zh_CN.UTF-8,Windows可以在系统设置里把非Unicode程序的语言改成UTF-8(注意这个可能影响部分老程序)。

  • 排查Doom模块和第三方包冲突
    有些Doom自带模块或者第三方包(比如all-the-icons)可能会和中文字体冲突。你可以先试试临时禁用all-the-icons:

    (package-disable-packages '(all-the-icons))
    

    或者调整modeline的配置,去掉可能出问题的元素:

    (setq doom-modeline-major-mode-icon nil) ; 关掉主模式图标,避免图标字体和中文字体冲突
    (setq doom-modeline-buffer-file-name-style 'truncate-with-project) ; 简化文件名显示逻辑
    

    改完后敲M-x doom/reload重载配置,看看乱码是不是消失了。

  • 最后验证生效
    每次改完配置一定要重启Emacs或者重载Doom配置,不然可能不生效。如果还是有问题,你可以试试备份原~/.doom.d后新建一个干净的Doom配置,排除是不是自定义配置里的其他代码搞的鬼。

内容的提问来源于stack exchange,提问作者Wizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:18:14