【问题标题】:Emacs - issues about hide-ifdef-modeEmacs - 关于 hide-ifdef-mode 的问题
【发布时间】:2015-01-04 23:10:06
【问题描述】:

如何自动加载 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),则会对其他文件(以及新打开的文件)执行此操作。

【问题讨论】:

  • hide-ifdef-mode 已经为您自动加载,无需您执行任何操作,所以我不太了解主要问题。
  • 在 Emacs 中,autoload 有一个非常具体的含义。你真的想在 C 缓冲区中自动打开 hide-ifdef-mode 吗?
  • 是的,就我而言,这是一个非常有用的工具。

标签: c emacs macros elisp


【解决方案1】:

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

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

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

请注意,Emacs 确实有一个名为 autoload 的功能,它做了一些不同的事情:

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

【讨论】:

  • 谢谢!它正在工作!关于第二个问题的任何想法? MB 是否需要为多个缓冲区使用一些 mod?
  • @folq,抱歉,我不知道该怎么做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多