2012-08-13 63 views
0

我很抱歉有一个非常基本的问题。我正尝试在初始化时在GNU Emacs中加载iMenu。通常通过执行M-x imenu-add-menubar-index加载。我知道我需要把一些东西放到我的~/.emacs文件中,但是我尝试过的所有东西都不起作用。在初始化时加载iMenu

我是GNU Emacs和Lisp的新手,我需要在那里为索引菜单自动生成?

+0

更多细节:http://stackoverflow.com/questions/8943705/gnu-emacs-equivalent-of-func-menu – gt6989b 2012-08-13 20:03:11

回答

2

通过在其模式钩子中添加imenu-add-menubar-index,可以为属于某个主模式的所有缓冲区提供Imenu“Index”菜单栏项目。例如,可以在这里找到在`iMenu`

(add-hook 'c-mode-hook #'imenu-add-menubar-index)  ; c 
(add-hook 'python-mode-hook #'imenu-add-menubar-index) ; python 
+0

就像一个魅力!非常感谢你 – gt6989b 2012-08-13 21:23:16

+0

也许你可以帮我解决这个问题。这就像你刚才提到的python一样工作,但是我的c自定义是通过'c-mode-common-hook'调用的,而不是你提到的'c-mode-hook'。这是为什么? – gt6989b 2012-08-13 21:31:02

+1

'c-mode-common-hook'是跨多种语言(包括c,C++,java等)的常见钩子,但'c-mode-hook'特定于C语言。请参阅CC模式手册中的[CC挂钩](http://www.gnu.org/software/emacs/manual/html_node/ccmode/CC-Hooks.html)。 – dkim 2012-08-13 21:39:46