我想在Cocoa emacs和Aquamacs之间建立不同的环境。他们都读〜/ .emacs,所以我尝试过这样的事情。
(unless (symbolp 'aquamacs-version)
; code for emacs
)
但它似乎不起作用。
我怎么知道我是否运行emacs或aquamacs?
答案 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-type
或window-system
识别Aquamacs,那么我想您可以从用于运行它的命令中确定它。假设可执行文件/链接实际上被命名为“aquamacs”,那么我认为这样的事情可以解决这个问题:
(unless (equal (car command-line-args) "aquamacs")
...)
如果失败,请尝试M-x apropos-value aquamacs RET
搜索包含该字符串的任何变量,以便在类似的比较中使用。