我正在尝试将我的.emacs文件配置为在Windows,Linux和Mac环境中工作 - 具体来说,我需要它为组织模式选择正确的字体和某个目录。
我尝试了以下加载正确字体的内容,但没有加载为org-mode指定的路径:
;; 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)) )
我尝试过以下操作,在我的Windows机器上返回错误Font Inconsolata-11 is not defined
,在我的Linux机器上返回错误Font -outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1 is not defined
。对于这两者,未加载指定的组织路径:
;; 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") )
我评估了两个环境中的system-type
变量,它们都正确评估。
任何人都可以看到什么是错的 - 而且,我对emacs-lisp并不是很精通,你能看到我正在做出的错误假设吗?
谢谢你, 扎卡里
答案 0 :(得分:4)
请注意,如果在lisp中是if-then-else。所以,在你的第一种情况下你正在做windows,设置字体,ELSE设置windows的加载路径!然后,如果linux设置了字体,你就是这样做,否则设置linux的加载路径!
试
(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")
)
)
这对mac或其他什么都不起作用,但是如果你只使用NT或linux,这应该可行。否则,如果超出第二个预测,你可以坚持另一个......