Emacs - 关于hide-ifdef-mode的问题

时间:2015-01-04 23:10:07

标签: c emacs macros elisp

如何自动加载hide-ifdef-mode? 以下实现对我不起作用:

;; auto hide-ifdef-mode from starting
(dolist (func '(hide-ifdef-mode hide-ifdef-mode-menu hide-ifdef-block
                hide-ifdef-define hide-ifdef-undef
                hide-ifdef-use-define-alist hide-ifdef-set-define-alist
                hide-ifdef-toggle-read-only hide-ifdef-toggle-outside-read-only
                hide-ifdef-shadowing))
   (autoload func "hideif" "Hiding several ifdef blocks" t))

或只是:

(autoload 'hide-ifdef-mode "hideif" "hideifdefmode" t)

相关问题 - 如何使用hide-ifdef-mode的所有操作都适用于所有* .c和* .h文件(缓冲区)? 就像,如果我定义一些宏(C-c @ d)或宏列表并应用它(C-c @ h),将对其他文件(以及新打开的文件)执行此操作。

1 个答案:

答案 0 :(得分:1)

我认为您在hide-ifdef-mode时自动寻找一种自动启用c-mode的方法。在Emacs中,这是通过hooks完成的。

尝试将此添加到您的配置中:

(add-hook 'c-mode-hook #'hide-ifdef-mode)

注意:Emacs 有一个名为autoload的功能,它会做一些与众不同的功能:

  

自动加载工具允许您注册函数或宏的存在,但推迟加载定义它的文件。对函数的第一次调用会自动加载正确的库,以便安装实际定义和其他相关代码,然后运行真正的定义,就像它一直被加载一样。查看函数或宏的文档也可以触发自动加载(参见Documentation Basics)。