【发布时间】:2013-04-23 20:57:15
【问题描述】:
我希望在 c-mode/c++-mode 中为ffap-c-path 添加额外的路径,我更喜欢惰性加载机制。我有两个选择:
- 将
add-hook用于c-mode-hook/c++-mode-hook eval-after-load
但正如@sanityinc 在this page 中所说,似乎后者更好。所以我添加如下代码:
(eval-after-load 'cc-mode
'(progn
(require 'ffap)
(setq fap-c-path (append ffap-c-path '("/usr/lib/llvm-3.1/include")))
)
)
但是当我后来打开一个 c 源文件并发现 fap-c-path 仍然是旧值时。根据文档,如果cc-mode 是库/功能,我可以使用eval-after-load 'cc-mode 或eval-after-load "cc-mode";但在这里都不起作用。我查看了定义cc-mode的源代码,发现它使用cc-provide代替,这是根本原因吗?
顺便说一句:我也尝试了add-hook 方法;新路径确实会附加,但每次我打开另一个 c/c++ 文件时,代码都会执行一次,最后ffap-c-path 包含许多重复的路径。
【问题讨论】: