代码之家  ›  专栏  ›  技术社区  ›  Phillip B Oldham

在elisp中测试平台?

  •  6
  • Phillip B Oldham  · 技术社区  · 15 年前

    我在Linux设备和OS X设备之间共享我的emacs配置文件。但是,当我在config中为emacs.app定义一个特定的字体时,配置就会中断,这在Linux上是不可用的。

    有没有一种方法可以测试当前平台,然后执行或跳过OS X特定的指令?

    2 回复  |  直到 15 年前
        1
  •  8
  •   Laurynas Biveinis    15 年前

    ELISP变量 system-type 是你想要的。所以你可以写

    (if (eq system-type 'darwin)
        (your-macosx-specific-configuration))
    
        2
  •  3
  •   cobbal    15 年前

    另一种可以考虑的方法是直接测试字体

    在.emacs文件中,我有以下内容:

    (let ((prefered-fonts '("-apple-espresso mono-medium-r-normal--0-0-0-0-m-0-iso10646-1")))
      (dolist (font prefered-fonts)
        (if (and (functionp 'x-list-fonts) (x-list-fonts font))
          (progn
            (add-to-list 'initial-frame-alist (cons 'font font))
            (add-to-list 'default-frame-alist (cons 'font font))))))
    

    这甚至在OSX中的控制台emacs中也能工作,而仅仅对系统进行测试就无法捕获