首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对emacs中的c/c++模式设置使用“后加载”?

如何对emacs中的c/c++模式设置使用“后加载”?
EN

Stack Overflow用户
提问于 2013-04-30 02:48:19
回答 2查看 576关注 0票数 1

我希望在c模式/c++模式下向ffap-c-path添加额外的路径,我更喜欢延迟加载机制。我有两个选择:

  • 使用add-hook实现c-mode-hook/c++-mode-hook
  • eval-after-load

但正如@sanityinc在this page中所说的,后者似乎更好。因此,我添加如下代码:

代码语言:javascript
复制
(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-modeeval-after-load "cc-mode";但是在这里两者都不起作用。我查看了定义cc模式的源代码,发现它使用的是cc-provide,这是根本原因吗?

顺便说一句:我也尝试了add-hook方法;新的路径是附加的,但是每次我打开另一个c/c++文件时,代码只执行一次,最后ffap-c-path包含许多重复的路径。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-30 03:00:08

你把ffap-c-path拼错为fap-c-path

您还可以更好地使用add-to-list,它实际上处理重复的条目,只在尚未出现的情况下添加一个新的列表项。

票数 0
EN

Stack Overflow用户

发布于 2013-04-30 03:03:40

您可能希望使用add-to-list来代替:

代码语言:javascript
复制
(eval-after-load 'cc-mode
  '(progn
     (require 'ffap)
     (add-to-list 'ffap-c-path "/usr/lib/llvm-3.1/include")))

这样,就可以保证不插入重复的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16291417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档