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

emacs-nerd-icons

这是一个使用Nerd Icons的图标库,支持GUI和terminal。对于GUI,只要在电脑上安装一个你喜欢的Nerd Font并设置emacs-nerd-icons-font-family就可以了。对于terminal,只要把terminal的字体设置成你喜欢的Nerd Font就ok。 同时我还做了两个对应的包:treemacs-nerd-iconsemacs-nerd-icons-dired 效果如图:

GUI:

terminal:

有个别all-the-icons里支持的图标目前Nerd Fonts还没有,我看情况comment out或者改成合适的图标了,不过可以确定的是不支持的图标都已经在Nerd Fonts的road map上了,考虑到Nerd Fonts的github十分活跃,相信不久的将来就能支持所有图标!希望更多对这个package感兴趣的朋友能够帮助改进emacs-nerd-icons或提供意见建议!

我这两天还在完善README和一些文档,icons-for-url也还未完工,但是大致接口和all-the-icons十分接近,所以把emacs-nerd-icons port到那些使用all-the-icons的包并不困难,我之后也会陆续制作各种对应的包,敬请期待!

23 个赞

打通gui和tty的体验的努力都给一波支持

3 个赞

image

有点显示问题。

GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.3.0, NS appkit-2299.40 Version 13.2 (Build 22D49)) of 2023-03-10

感谢回复!请问可否尝试emacs-nerd-icons-dired看看有没有同样的问题?如果dired的图标显示正常的话可能是treemacs有设置问题。然后请问您用的是哪个nerd font字体?

我没法reproduce您的问题,我这边试了emacs28几台机器windows(10和11)和linux(ubuntu和arch)都正常诶。

什么时候上melpa吧

如果稳定,我准备将在 doom-modeline 中集成 nerd-icons

2 个赞

image

目前还是有些问题,左边是 all-the-icons-dired,右边是 emacs-nerd-icons-dired

好的,请问您用的是哪一个nerd font?

目前我猜想可能和scale-factor或者字体的height有关,也有可能要调整char-width

我大致查了查,这似乎是font本身的问题,一个简单的解决办法是使用nerd font mono或者symbols nerd font mono,比如如果想用FiraCode Nerd Font那就使用FiraCode Nerd Font Mono或者Symbols FiraCode Nerd Font Mono

我不能reproduce这个问题,不知道这样有没有用

是不是要用 mono系列的主题

Hack Nerd Font,FiraCode Nerd Font,都是这样。

用mono字体一样的,MacOS, Emacs 29

哇我花了几个小时好不容易装了个macos的虚拟机用brew装了个cask的emacs,然后还是没有遇到这个图标显示不全的问题 :joy: 我所有测试的都是用的release binary所以很有可能是build from source的版本有某个功能支持有问题。我之前看过一个贴子是关于cairo渲染图标会有遇到同样的问题不知道是不是。总之这个问题我记下了,之后我会仔细研究滴

附截图

2 个赞

有可能,我用的是自己编译的emacs-plus 29.0.60。 不过看起来图标很多还是不一样大呢?

哦图标大小不一致单纯是因为我没有用Mono,因为用Mono的话还要调一下scale-factor因为默认图标会小一点,我单纯看有没有图标显示不全的问题就没有去设置。(话说x86跑macos是真的很慢 :smiling_face_with_tear:

附上使用Mono的对齐图标(没改scale-factor):

我之后自己build一下29试试,感谢提供信息!

终于用上 Nerd Font 了,太好了。

今天试了下,mono好像可以正确显示了,非mono的会被截断。不过,图标有点小,而且似乎也没对齐。

哦这个没对齐是因为左边all-the-icons的宽度不一致哈哈,单独使用emacs-nerd-icons-dired就ok了,至于图标大小的话可以(setq emacs-nerd-icons-scale-factor 1.2) 或者更大

确实能对齐了,不过图标大小还是不成比例。在terminal下设置 emacs-nerd-icons-scale-factor 不起作用,在GUI下间距变大了,但是图标看起来还是显得很小。另外,在Windows上很多文件图标显示乱码,文件夹倒是正常。

image

image

请问怎么设置emacs-nerd-icons-for-mode function的background而不改变原来的foreground?