我怎么知道我是否在.emacs文件中运行emacs或aquamacs?

时间:2010-07-15 16:00:07

标签: emacs elisp

我想在Cocoa emacs和Aquamacs之间建立不同的环境。他们都读〜/ .emacs,所以我尝试过这样的事情。

(unless (symbolp 'aquamacs-version)
; code for emacs
)

但它似乎不起作用。

我怎么知道我是否运行emacs或aquamacs?

5 个答案:

答案 0 :(得分:8)

我会尝试(boundp 'aquamacs-version)

答案 1 :(得分:4)

我相信你所寻找的是:

(when (featurep 'aquamacs)
   ...)

答案 2 :(得分:2)

aquamacs将读取.emacs,但您可以将所有aquamacs特定的自定义设置放在aquamacs Preferences.el文件中:

  

安装特定于Aquamacs的偏好设置   和包装在Aquamacs Emacs路径中,   其他人(应该加载   Emacs路径中的其他Carbon Emacsen)。   首选项(.emacs)

     

加载这些首选项   给定顺序:

     

〜/ .emacs(不赞成 - 意思是   '不应该用于新的   安装,但将继续   支持' - 在OS X上的Aquamacs中)   按请求或保存的自定义项   Aquamacs自动进入   customizations.el   /Library/Preferences/Emacs/Preferences.el   /库/首选项/ Aquamacs   Emacs的/ Preferences.el   〜/库/首选项/ Emacs的/ Preferences.el   〜/库/首选项/ Aquamacs   的emacs / Preferences.el

答案 3 :(得分:2)

(symbolp 'aquamacs-version)永远都是真的。 (boundp 'aquamacs-version)仅在符号绑定(“赋值”)值时才为真。因此,您的代码基本上可以由(progn nil)替换,因为条件始终为真。

如果aquamacs-version是函数而不是变量,请使用(fboundp 'aquamacs-version)

答案 4 :(得分:0)

我无法对此进行测试,但如果您无法通过system-typewindow-system识别Aquamacs,那么我想您可以从用于运行它的命令中确定它。假设可执行文件/链接实际上被命名为“aquamacs”,那么我认为这样的事情可以解决这个问题:

(unless (equal (car command-line-args) "aquamacs")
  ...)

如果失败,请尝试M-x apropos-value aquamacs RET搜索包含该字符串的任何变量,以便在类似的比较中使用。