试了下sr-speedbar,不支持lua文件。
Emacs 内置有 (emacs) Imenu,默认能从 Minibuffer 和菜单(下图)中控制,要用一个单独的 buffer 操作的话,应该有第三方插件支持,应该能用 C-h P 里透过关键词 imenu
搜到。imenu 支持某种语言一般由对应 Major Mode 的作者决定,而不是 imenu 自身。
下载这个回答 How to display imenu content in speedbar 下的 sb-imenu.el 文件和安装 sr-speedbar 包,然后配置 (setq speedbar-initial-expansion-list-name "sb-imenu")
,执行 sr-speedbar-toggle
就如下图了
但奇怪的是在打开elisp文件点击taglist时会报错 sb-imenu-go: Wrong type argument: integer-or-marker-p, #<overlay
,然而lua-mode时一切正常,得修改 sb-imenu.el 文件中第108行为 (goto-char (overlay-start node)))
,至于其它没接触的语言不知道能否较好支持,但可以参考这配置好的增强js2-mode中imenu跳转功能的 javascript-common-imenu-regex-list
写法,可以识别更多自定义TAG。
链接:
1 个赞
我用了e2wm,还可以~