如何通过函数强制重新扫描imenu?

时间:2012-11-17 00:55:45

标签: emacs elisp

显然,我可以输入M-x imenu <RET> * <RET>;但有没有任何单一的功能会强制重新扫描?由于我which-func-mode需要这个,所以“自动重新扫描”功能对我没用;我宁愿不必调用imenu然后立即退出,只需调用一个函数(一个函数来扫描所有函数?;))。浏览imenu.el并没有帮助......

2 个答案:

答案 0 :(得分:2)

确实,没有imenu-rescan功能。看一下代码工作的一般方式,我认为没有这样的功能是有意义的,但应该有一个imenu-flush-cache函数,它缺失了。请M-x report-emacs-bug申请此类新功能。同时,您可以(setq imenu--index-alist nil)手动刷新缓存。

答案 1 :(得分:2)

按下*Rescan*后,这将强制进行更新(就像您点击菜单中的C-c i项一样):

(global-set-key "\C-ci"
                (lambda () (interactive)
                  (imenu--menubar-select imenu--rescan-item)))