我抄了一些 emacs 命令并~/.emacs
在需要时复制/粘贴它们。
我想添加一个代码折叠宏,但该宏对于 emacs23 和 emacs24 似乎有所不同。接下来的两个要求来自 Stack Overflow 的如何在 emacs 中永久启用 hs-minor-mode。
对于 emacs23,我似乎需要:
(add-hook 'c-mode-common-hook #'hs-minor-mode)
对于 emacs24,我似乎需要:
(add-hook 'prog-mode-hook #'hs-minor-mode)
我现在正在寻找一种方法来保护命令。(emacs-nox
如果重要的话,我也会使用变体)。
我如何将这两个命令添加到我的命令中~/emacs
,以便我可以复制/粘贴而不必担心版本?
答案1
由于我只是一名业余爱好者,因此我不太清楚编程环境中的guarding
或是什么意思,但以下代码片段是一种以编程方式区分 的方法:guard
emacs-major-version
(cond
((= emacs-major-version 23)
(add-hook 'c-mode-common-hook #'hs-minor-mode))
((= emacs-major-version 24)
(add-hook 'prog-mode-hook #'hs-minor-mode))
(t
(message "The catch-all condition has not been set for hs-minor-mode.")))
答案2
测试函数或变量是否存在通常比测试更好(更精确)emacs-major-version
。
(add-hook (if (boundp 'prog-mode-hook) 'prog-mode-hook 'c-mode-common-hook)
#'hs-minor-mode)