如何移动CEDET自动生成的ede-projects.el和srecode-map.el?

时间:2013-04-28 21:02:11

标签: emacs cedet

哪些变量名可以自定义存储CEDET自动生成文件的目录,例如ede-projects.el和srecode-map.el?默认情况下它们在〜/ .emacs.d中,但我想将它们移动到其他地方。谢谢!

2 个答案:

答案 0 :(得分:2)

对于" ede-projects.el"我在加载Cedet后发现了下一个解决方案:

(setq ede-project-placeholder-cache-file (concat tmp-dir "ede-projects.el"))

其中" tmp-dir"是你想要的一条路。

同样适用于语义:

(setq semanticdb-default-save-directory (concat tmp-dir ".semanticdb"))

对于" srecode-map.el"我没有找到更好的方法来替换" .. \ cedet \ lisp \ cedet \ srecode \ map.el"中的第48行:

  (locate-user-emacs-file "srecode-map.el" ".srecode/srecode-map")

  (locate-user-emacs-file (concat tmp-dir "srecode-map.el") ".srecode/srecode-map")

我不是很确定,但必须有一个变量而不是硬编码的字符串。

答案 1 :(得分:2)

作为对AdVocem的答案的补充(这是完全正确的),这里有一种或多或少的系统方法来查找这些变量:使用命令apropos-value

此命令查找其值与给定模式匹配的所有lisp变量。 例如,在您的情况下:

  • M-x apropos-value RET ede-projects.el RET 产生以及其他结果:

    [...]
    ----------------
    ede-project-placeholder-cache-file
       "~/.emacs.d/ede-projects.el"
    
    ----------------
    [...]
    
  • Mx apropos-value RET srecode-map.el RET 没有任何意义:只是一堆标准变量与CEDET无关。

当然,要使其生效,必须预先加载所有相关的库(否则,可能尚未定义变量)。