如何在Emacs中选择系统类型
我正在尝试将.emacs文件配置为在Windows、Linux和Mac环境下工作——具体来说,我需要它为组织模式选择正确的字体和特定的目录 我尝试了以下加载正确字体的方法,但没有加载为组织模式指定的路径: ;; On Windows (if (eq system-type 'windows-nt) (set-default-font "-outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1") (setq load-path (cons "~/elisp/org-6.34c/lisp" load-path)) ) ;; On Linux (if (eq system-type 'gnu/linux) (set-default-font "Inconsolata-11") (setq load-path (cons "~/elisp/org-current/lisp" load-path)) ) 我在两种环境中都评估了如何在Emacs中选择系统类型,emacs,elisp,Emacs,Elisp,我正在尝试将.emacs文件配置为在Windows、Linux和Mac环境下工作——具体来说,我需要它为组织模式选择正确的字体和特定的目录 我尝试了以下加载正确字体的方法,但没有加载为组织模式指定的路径: ;; On Windows (if (eq system-type 'windows-nt) (set-default-font "-outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1") (setq
系统类型
变量,它们的评估结果都正确
有人能看出哪里出了问题吗?还有,我对emacs lisp不是很精通,你能看出我做出了哪些不正确的假设吗
谢谢,,
Zachary注意,lisp中的if是if-then-else。因此,在第一种情况下,如果是windows,请设置字体,否则请设置windows的加载路径!然后,独立地,如果linux设置字体,则您正在执行,否则将为linux设置加载路径 试一试
这在mac或其他任何平台上都不起作用,但如果你只使用NT或linux,这应该可以。否则,如果在第二个程序之外,您可以粘贴另一个…非常感谢,布赖恩。我真的很感激
if
语句if-then-else的解释。我确实认为,中的两个语句在不同级别缩进的方式很奇怪,我知道这不是无关紧要的——现在很明显。我打算为每种类型使用单独的if
语句,但只是像您所描述的那样将真实条件封装在progn()
块中,实际上省略了else子句。再次感谢。干杯这也行。永远记住,emacs不会无缘无故地做任何事情。如果它以一种让你惊讶的方式缩进了某个东西,那么你可能做错了B-)你也可以使用when
构造,它类似于if
,但没有“else”分支。它对多行进行求值(就像有一个隐式的progn
),因此,如果您只是将所有if
替换为when
,您就可以使用原始示例了。您不需要else子句中的progn
,所有表单都将被求值。您假设if
是when
,而事实并非如此。另外,为什么不在每个系统上命名相同的目录,并在另一个系统上安装您喜欢的字体呢。“Foo-42”语法适用于任何地方。
;; On Windows
(if (eq system-type 'windows-nt)
(setq load-path (cons "~/elisp/org-6.34c/lisp" load-path))
(set-default-font "-outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1")
)
;; On Linux
(if (eq system-type 'gnu/linux)
(setq load-path (cons "~/elisp/org-current/lisp" load-path))
(set-default-font "Inconsolata-11")
)
(if (eq system-type 'windows-nt)
(progn
(setq load-path (cons "~/elisp/org-6.34c/lisp" load-path))
(set-default-font "-outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1")
)
(progn
(setq load-path (cons "~/elisp/org-current/lisp" load-path))
(set-default-font "Inconsolata-11")
)
)