用上了,比 all-the-icons 好用
基本上 all-the-icons 提供的功能都有一比一对应,直接改名 all-the-icons-*
到 nerd-icons-*
就可以搞定大部分迁移。但是图标名称和 face 名称是不一样的,想找到图标对应的名字可以用 M-x nerd-icons-insert-*
系列来找。
用上了,比 all-the-icons 好用
基本上 all-the-icons 提供的功能都有一比一对应,直接改名 all-the-icons-*
到 nerd-icons-*
就可以搞定大部分迁移。但是图标名称和 face 名称是不一样的,想找到图标对应的名字可以用 M-x nerd-icons-insert-*
系列来找。
我支持這個插件, 覺得很好用!
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)
果然如此,我改了几次都没有成功,后面改了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))