这几天参考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搭配不那么难受
➌ 更多我可以控制和自定义的地方