我希望在c模式/c++模式下向ffap-c-path添加额外的路径,我更喜欢延迟加载机制。我有两个选择:
add-hook实现c-mode-hook/c++-mode-hookeval-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仍然是旧的值时。根据文档,如果eval-after-load 'cc-mode是一个库/特性,我可以使用cc-mode或eval-after-load "cc-mode";但是在这里两者都不起作用。我查看了定义cc模式的源代码,发现它使用的是cc-provide,这是根本原因吗?
顺便说一句:我也尝试了add-hook方法;新的路径是附加的,但是每次我打开另一个c/c++文件时,代码只执行一次,最后ffap-c-path包含许多重复的路径。
发布于 2013-04-30 03:00:08
你把ffap-c-path拼错为fap-c-path。
您还可以更好地使用add-to-list,它实际上处理重复的条目,只在尚未出现的情况下添加一个新的列表项。
发布于 2013-04-30 03:03:40
您可能希望使用add-to-list来代替:
(eval-after-load 'cc-mode
'(progn
(require 'ffap)
(add-to-list 'ffap-c-path "/usr/lib/llvm-3.1/include")))这样,就可以保证不插入重复的值。
https://stackoverflow.com/questions/16291417
复制相似问题