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

感觉很低效啊,还是没看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 个赞

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

现在treeamcslsp-treemacs都支持imenu icon 了

喊你去看源码

对齐的方法是啥?求分享

简单说就是用TAB,并设置width为1

有啥代码可以抄的吗?最近比较流行抄作业。 :slight_smile:

比如

谢谢,我自己在 snails 代码里面按照你的方法试验,感觉没有对齐啊,只是增加了 tab 字符

(defun snails-wrap-buffer-icon (buf)
  "Wrap display name with buffer icon, use for buffer search backend."
  (if (featurep 'all-the-icons)
      (progn
        (setq-local tab-width 1)
        (format "%s\t '%s'"
                (with-current-buffer buf
                  (all-the-icons-icon-for-buffer))
                (string-trim-left (buffer-name buf))))
    (buffer-name buf)))

(defun snails-wrap-file-icon (file)
  "Wrap display name with file icon, use for file search backend."
  (if (featurep 'all-the-icons)
      (progn
        (setq-local tab-width 1)
        (format "%s\t %s"
                (all-the-icons-icon-for-file file :height 1)
                (string-trim-left file)))
    file))

(defun snails-wrap-file-icon-with-candidate (file candidate &optional no-trim)
  "Wrap display name with file icon, use for file search backend."
  (if (featurep 'all-the-icons)
      (progn
        (setq-local tab-width 1)
        (format "%s\t %s"
                (all-the-icons-icon-for-file (format "hello.%s" (file-name-extension file)) :height 1)
                (if no-trim
                    candidate
                  (string-trim-left candidate)
                  )))
    candidate))

我没有使用snails,如果还不行用overlay肯定可以解决