Как настроить общую среду Emacs для компьютеров с Windows и Linux? - PullRequest
9 голосов
/ 12 января 2010

Я использую emacs для редактирования текста и разработки сценариев. Я использую как Windows, так и Ubuntu Emacs 23.1.

Теперь я хочу, чтобы среда Linux и Windows копировала одну и ту же среду.

  1. Я сохраню здесь свою среду emacs https://bitbucket.org/krish/emacs/,, поэтому синхронизация файлов не будет проблемой.

  2. У меня нет разных настроек разрешения для обоих условий

  3. Я использую aspell, которому нужен конкретный путь и другой установщик в Windows и Linux

  4. Я использую режим Perl, Python, Ruby вместе с другими HTML, CSS, JS-2 и NXML

Есть ли какой-нибудь конкретный способ / совет для управления общей средой emacs между windows и linux? особенно как управлять путем программы?

Ответы [ 3 ]

7 голосов
/ 12 января 2010

Реального прямого пути нет. Вам нужно будет изолировать большинство (если не все) подпрограмм вашей платформы в разные файлы и загрузить их после проверки платформы.

Стив Йегге имеет некоторую информацию о том, как он управляет своим файлом .emacs, а также сам фактический код над здесь . Один из его пунктов - то, как он придерживается кроссплатформенного взлома. Это стоит прочитать.

3 голосов
/ 12 января 2010

У меня есть настройки, очень похожие на вашу (Emacs 22.1, 22.2, 23.1 в различных версиях Linux с X и Windows и без и с Cygwin и без). Моя установка включает в себя ELPA, auctex, emacsw32, CEDET, JDEE, nxml и различные другие пакеты elisp. Я не использую то, что поставляется с системой, но храню копии этих пакетов в Subversion.

Большинство настроек работает только во всех средах. Что касается путей, я думаю, что большинство вещей, которые вы хотите вызвать, таких как aspell, могут быть вызваны и вне Emacs из командной строки, поэтому стоит поместить их в $ PATH, избегая необходимости указывать полные пути в Emacs.

Для других вещей я делаю В .emacs:

; Load system-specific library and setup system-specific things that 
; must be setup before main setup 
(cond ((eq system-type 'windows-nt) (load-library "ntemacs-cygwin"))
      ((eq system-type 'gnu/linux) (load-library "linux"))
      (t (load-library "default")))

(system-specific-setup)

; Set up things as usually, no more system-type queries.

Где в linux.el:

(defun system-specific-setup()

  ; Default font
  (add-to-list
   'default-frame-alist
   '(font . "-Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO8859-1"))
  (setq my-frame-width 95)
  (setq my-frame-height 56)
  ; Not much else
)

А в ntemacs-cygwin.el:

(defun system-specific-setup()
  ;; EmacsW32
  (setq emacsw32-root (concat private-elisp-lib "EmacsW32"))
  (add-to-load-path emacsw32-root)

  ;; Work around XSymbol initialization bug
  ;; ("C:\\ImageMagick\\convert" instead of system $PATH? Seriously?)
  (setq x-symbol-image-convert-program "convert")

  ;; etcetera...

)

По сути, это вопрос настройки вещей в одной системе, примерки их в другой и выделения того, что должно отличаться от настроек системы.

И статья Стива Йегге в ответе Нуфаля очень хорошая.

0 голосов
/ 13 января 2010

Вы можете посмотреть мои конфиги emacs , где операции для разных компьютеров разбиты на отдельные файлы

...