请问emacs显示变量函数的是用imenulist吗?怎么加上icon呢?

配置了之后发现很丑啊没有icon这些。我看这个图 这个是是用的imenulist吧 有icon 翻了下github的readme也没有说明,emacs的插件的文档都是要在emacs wiki上找吗?

谁看文档 都是看源码的

…vim我们写插件都会提供doc。。

直接看docstring。不整这么多花里胡哨的。

Emacs的文档是内嵌在代码里的。

类似的问题我之前有问过,最后用了treemacs

花里胡哨?啥啊,vim的插件作者都会写txt可以显示在vim里通过:h xxx 方便阅读使用啊。

倒不是,我就是想问怎么在imenu list里加这个icon

直接用C-h f 描述入口函数就能看该函数的docstring。docstring一般都会说怎么做。

至于开发文档,要看作者心情写不写。不过上melpa的包都强制写docstring的。 顺便说一下我自己如何快速弄懂一个包

  • 看README
  • 看源码内部有一个;;; Commentary: 一般是对包内容的简单描述
  • 搜索包里的defcustom块,找到包里所有可以设置的变量。
  • describe-key describe-function 找到包的入口函数,查看其docstring。没有docstring的包是不给上melpa的(除非是年代久远的)

最简单粗暴的方式是直接问作者。

感觉很低效啊,还是没看doc和详细的README来的快。。有点不适应。

那就看README,一般都有readme,不过包管理倒不会自动拉取readme

imenu-list本身没有提供配置功能,你可以给作者提需求。

看了下代码,其实很简单,自己修改下imenu-list--insert-entry应该就行了。默认entry 是写死加上+的。

如果是使用 lsp,默认就有lsp-ui-imenu,会漂亮很多。

我用了lsp-ui-imenu 也很丑啊 。。也没有icon

不是只有 icon 才是美的,你让用 terminal 的怎么活? 如果一定要,自己加上就行了啊。Centaur 大部分都是自定义的,后来才进入上游并且有配置的。

terminal也可以的 nerdfonts 我vim都可以啊

emacs也可以加上 icon,terminal 也可以用。问题是远程 ssh 的服务器就没辙了,大多数工作场景都如此,除非用 tramp。

nerdfonts 缺字,效果没all-the-icons用的那几个字体效果好

对,nerd fonts 缺少很多 icon。我也创建了一个icons-in-terminal.el,可以在 GUI 和 Terminal 下使用,跟 all-the-icons 方法一模一样。

All the icons 用了几天删了,主要是因为图标宽度不一,导致后续文字不能对齐。我有强迫症,不对齐无法忍

突然发现有人和我纠结这个看源码的问题……行吧,我想我得仔细解释下。原来Elisp的打包标准是每个包要有一个;;; Commentary的长说明注释,但为了方便,又规定当有README文件的时候,可以不用写;;; Commentary(README用markdown,org写也行,本质没变),另一方面README可以被Github显示,所以大家都写README。然而melpa拉取包的默认pattern并没有包含README文件。结果导致只有代码被拉到本地,包的详细说明只能自己上仓库看。

不过MELPA的初审是要求所有函数都要有docstring,所以大部分情况看 包入口函数的docstring就能满足需求了(除非那个人偷懒写得特别语焉不详,然而MELPA审核会拒绝接受)

Related:https://www.gnu.org/software/emacs/manual/html_node/elisp/Multi_002dfile-Packages.html#Multi_002dfile-Packages

2 个赞

可以对齐的,你没找到方法而已。