Как выбрать системный тип в Emacs

Я пытаюсь настроить свой .emacs файл для работы в Windows, Linux и среде Mac - а именно, мне нужен он для выбора правильного шрифта и определенного каталога для org-режима.

Я попробовал следующее, которое загружает правильный шрифт, но не загружает путь, указанный для org-режима:

;; 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. Для обоих не загружается указанный путь org:

;; 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-шепелявости, можно ли видеть, какие неправильные предположения я делаю?

Спасибо, Zachary

5
задан Zachary Young 4 March 2010 в 19:47
поделиться

1 ответ

обратите внимание, что if в lisp - это if-then-else. Итак, в вашем первом случае вы делаете, если окна, установите шрифт, ИНАЧЕ установите путь загрузки для окон! то независимо от того, что вы делаете, если 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, это должно сработать. В противном случае вы можете вставить другой, если не во 2-м прогоне ...

4
ответ дан 15 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: