emacs-nerd-icons 一个all-the-icons的替代方案(支持GUI和terminal)

用上了,比 all-the-icons 好用 :+1:t2:

基本上 all-the-icons 提供的功能都有一比一对应,直接改名 all-the-icons-*nerd-icons-* 就可以搞定大部分迁移。但是图标名称和 face 名称是不一样的,想找到图标对应的名字可以用 M-x nerd-icons-insert-* 系列来找。

我支持這個插件, 覺得很好用! :slight_smile:

treemacs 是不是还得安转 all-the-icons 这个这包,尽管不用它?

fixed: 在 doom-themes 的配置中,去掉:
;; (setq doom-themes-treemacs-theme “doom-atom”) ; use “doom-colors” for less minimal icon theme
;; (doom-themes-treemacs-config)
;; (doom-themes-org-config)

2 个赞

果然如此,我改了几次都没有成功,后面改了doom里面的代码搞定。

想请教大家如果出现这种极高的竖线,有可能是什么原因呀?

看一下nerd-icons有没有升级到最新版本,然后用nerd-icons-install-fonts更新一下字体试试,有的时候可能需要把本地的包和字体删了重新装

已经完全按照描述操作过(更新 nerd-fonts 版本,卸载字体后重新安装,刷新过字体,重启过电脑),但是依然出现这个问题。

我是 manjaro 系统,请问还有什么办法可以继续 debug 呀。

另外在我不知道怎么捣鼓的时候(我也不确定是不是捣鼓 nerd-icons 的时候),似乎 message 出现了这个信息,不知道有没有帮助

Selection owner couldn’t convert: UTF8_STRING
Selection owner couldn’t convert: COMPOUND_TEXT
Selection owner couldn’t convert: STRING
Selection owner couldn’t convert: text/plain;charset=utf-8

你可以用终端kitty来做测试,因为他这个包在终端里也是支持的。 下面是我对kitty部分字符的设定,你也可以参考:

symbol_map U+2E80-U+FA2D  Sarasa Gothic SC Nerd Font

下面是安装我用的字体

yay -S ttf-sarasa-gothic-nerd-fonts  

如果终端中的符号是正常的,你emacs里的符号不正常,那就说明你emacs关于字体的配置有问题。

请问这个是 kitty 的配置吗?

symbol_map U+2E80-U+FA2D  Sarasa Gothic SC Nerd Font

我没有太理解这个调试的思路?是说 kitty 有一个功能是将一些一些字符用特定字体(sarasa-gothic-nerd-fonts)展示,然后我安装这个特定字体来看看有没有用吗?那这个 sarasa-gothic-nerd-fonts 还是 nerd-fonts 吗?

不过如果不执行 symbol_map 这个指令,然后只用 kitty 并下载字体,似乎是可用的

请问这说明了什么呀?

我配置字体的代码如下,请问能看出什么问题吗?

(defun +setup-fonts ()
  "Setup fonts."
  ;; JetBrainsMono 这个字体并不支持一些字符,好像 Sarasa Term SC 支持得更多一些,但是不知道 vscode 为啥可以
  (set-face-attribute 'default nil :font (font-spec :family "JetBrainsMono Nerd Font" :size +font-en-size)) ; 设置英文字体
  (set-fontset-font t 'han (font-spec :family "LXGW WenKai" :size +font-han-size))
  (set-fontset-font t 'han (font-spec :script 'han) nil 'append) ; 设置中文字体 Sarasa Term SC LXGW WenKai
  (set-fontset-font t 'unicode (font-spec :family "Noto Color Emoji") nil 'append)
  ;; (set-fontset-font t 'unicode (font-spec :family "Symbola") nil 'append)
  )

那个配置是因为我只对部分字体做了配置,所以单独拿了出来,它不影响我英文字体。可以看的出来的是不可能是什么系统问题,如果有正确的字体,也能正常显示符号。所以你可以先把你的字体配置去掉。仅仅安装他的两个包,看看是不是就能正常显示了。同时你可以在那个不显示符号的位置执行describe-char来看看字体是否为nerd font。

即使 emacs -q 依然是这种失败的结果

另外如果使用 describe-char 描述这个错误字符,他会描述成一个 space,如下所示

             position: 223 of 1111 (20%), column: 56
            character: SPC (displayed as SPC) (codepoint 32, #o40, #x20)
              charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x20
               script: latin
               syntax:   	which means: whitespace
             category: .:Base, a:ASCII, l:Latin
             to input: type "C-x 8 RET 20" or "C-x 8 RET SPACE"
          buffer code: #x20
            file code: #x20 (encoded by coding system utf-8-unix)
              display: by this font (glyph code):
    ftcrhb:-JB-JetBrainsMono Nerd Font-regular-normal-normal-*-20-*-*-*-m-0-iso10646-1 (#x04)

不过我用 describe 描述正常显示的图标,结果类似。

不需要emacs -q,那样你安装的包岂不是也没了,是把你字体的配置注释掉就好

确定这个竖线不是feature吗?因为竖线左边是文件的信息,右边是文件名,感觉像是故意做出来方便区分的

其实就蛮奇怪的,一般字符缺失不是像他那样的,而是也会显示一个符号,但不能正常显示。dired我没设置,是没有这个竖线的。

我确实没有表达清楚,我说的 emacs -q 就是没有其他配置,只有 nerd-icons 和 nerd-icons-dired 这两个包,就会出现这种“极高竖线”的情况。

此外如果使用 knosole 来运行 emacs -nw,其效果如下,可以看到依然是没有这个字符的:

如果只去掉字体设置,其效果如下:

在极高线出 describe-char,其效果如下:

position: 1072 of 1111 (96%), column: 56
            character: SPC (displayed as SPC) (codepoint 32, #o40, #x20)
              charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x20
               script: latin
               syntax:   	which means: whitespace
             category: .:Base, a:ASCII, l:Latin
             to input: type "C-x 8 RET 20" or "C-x 8 RET SPACE"
          buffer code: #x20
            file code: #x20 (encoded by coding system utf-8-unix)
              display: by this font (glyph code):
    ftcrhb:-ADBO-Source Code Pro-regular-normal-normal-*-16-*-*-*-m-0-iso10646-1 (#x01)

不清楚是什么原因,非常感谢您的帮助。

应该不是 feature,可以参考我发的第一张图,里面有正常显示的图标,也有极高竖线。感谢您的帮助。

你先试试一个最小配置,先别配置其他东西,你再看看有没有问题

(use-package nerd-icons
  :custom
  (nerd-icons-font-family "Sarasa Term SC Nerd")
  :ensure t)
(use-package nerd-icons-dired
  :hook
  (dired-mode . nerd-icons-dired-mode))

依然是有问题的