Различные настройки в .emacs для ПК / Mac - PullRequest
2 голосов
/ 15 сентября 2010

Мне нужно иметь разные настройки в .emacs в зависимости от моей системы (Mac или ПК).

Эта запись учит, как узнать систему, в которой работает мой emacs.

  • Как проверить, что переменная 'system-type' задает, что в emacs?
  • Какой код должен быть в .emacs, чтобы иметь разные настройки для ПК и Mac?
???
(when (eq system-type 'windows-nt') 
)

Ответы [ 3 ]

8 голосов
/ 15 сентября 2010

Вы можете сделать это:

(if (equal system-type 'windows-nt)
    (progn
         (... various windows-nt stuff ...)))
(if (equal system-type 'darwin)
    (progn
         (... various mac stuff ...)))

То, что я делаю в моем .emacs - это установка переменной (я называю это this-config) в зависимости от типа и имени машины.Затем я везде использую одни и те же .emacs.

Используя этот код, я могу вытащить имя машины:

(defvar this-machine "default")
(if (getenv "HOST")
    (setq this-machine (getenv "HOST")))
(if (string-match "default" this-machine)
    (if (getenv "HOSTNAME")
        (setq this-machine (getenv "HOSTNAME"))))
(if (string-match "default" this-machine)
    (setq this-machine system-name))

Затем вы можете установить этот-config на основе типа системы и /или имя машины.

Затем я использую этот код:

(cond ((or (equal this-machine "machineX")
           (equal this-machine "machineY"))
       (do some setup for machineX and machineY))

Редактировать: system-type возвращает символ, а не строку

1 голос
/ 15 сентября 2010

Сделайте это:

(if (eq window-system 'w32)
    (progn
... your functions here for Microsoft Windows ...
))

window-system - это функция, которая возвращает имя оконной системы.

system-type является переменной. C-h v system-type RET , чтобы получить список поддерживаемых типов систем для вашего случая:

Из справки:

  `gnu'          compiled for a GNU Hurd system.
  `gnu/linux'    compiled for a GNU/Linux system.
  `gnu/kfreebsd' compiled for a GNU system with a FreeBSD kernel.
  `darwin'       compiled for Darwin (GNU-Darwin, Mac OS X, ...).
  `ms-dos'       compiled as an MS-DOS application.
  `windows-nt'   compiled as a native W32 application.
  `cygwin'       compiled using the Cygwin library.
Anything else (in Emacs 23.1, the possibilities are: aix, berkeley-unix,
hpux, irix, lynxos 3.0.1, usg-unix-v) indicates some sort of
Unix system.
1 голос
/ 15 сентября 2010

В моем emacs написано darwin, название открытой ОС, на которой построен OSX.Чтобы увидеть значения, выполните переменную description для system-type.

Обратите внимание, что у mac также есть несколько возможных типов окон, поэтому вам может потребоваться принять больше решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...