maple-imenu——类似tagbar的emacs插件


这几天参考imenu-list重写了一个类似 vim 中tagbar的插件 maple-imenu, 其实之前我一直在使用另一个类似的插件—— imenu-list, 虽然imenu-list已经足够使用了, 但它和golden-ratio搭配起来很难受, golden-ratio 我是常开的, 但imenu-list也会偶尔使用(浏览及讲解代码必备,否则查找某个函数和变量时很难受的)

原本我想要自定义一下imenu-list,但看了源码之后, 发现很多地方都不符合我的需求, 而且需要改动的地方越来越多,最后不如自己重写

  • 如何使用

    下载文件复制到 $HOME/.emacs.d/site-lisp/maple-imenu 目录, 然后

    (use-package maple-imenu
      :load-path "site-lisp/maple-imenu"
      :commands (maple-imenu)
      :config
      (with-eval-after-load 'evil
        (evil-make-overriding-map maple-imenu-mode-map 'normal)))
    
    M-x maple-imenu
    
  • 相关变量
    • maple-imenu-buffer

      maple-imenu buffer name, default *maple-imenu*

    • maple-imenu-displayed-buffer

      displayed buffer name, default nil

    • maple-imenu-overlays

      save overlay info, toggle open or close entry

    • maple-imenu-width

      maple-imenu window size, default 25

    • maple-imenu-padding

      maple-imenu prefix padding, default 2

    • maple-imenu-position

      maple-imenu window display position, default 'right, or 'left

    • maple-imenu-arrow

      open or close arrow, default ("▾" . "▸")

    • maple-imenu-auto-update

      auto update when t, after save every time

  • 相比较imenu-list

    ➊ 代码和逻辑我认为与 imenu-list 比起来更加通俗易懂

    ➋ window fixed, 至少与golden-ratio搭配不那么难受

    ➌ 更多我可以控制和自定义的地方

There are comments.