9 Stimmen

Wie richtet man eine gemeinsame Emacs-Umgebung für Windows- und Linux-Computer ein?

Ich verwende emacs zur Textbearbeitung und Skriptentwicklung. Ich benutze sowohl Windows als auch Ubuntu emacs 23.1 Distribution.

Jetzt möchte ich, dass sowohl meine Linux- als auch meine Windows-Umgebung dieselbe Umgebung replizieren.

  1. Ich werde meine emacs-Umgebung hier speichern https://bitbucket.org/krish/emacs/ so dass die Dateisynchronisierung kein Problem darstellt.

  2. Ich habe keine unterschiedlichen Auflösungseinstellungen für die beiden Umgebungen

  3. Ich verwende aspell, das unter Windows und Linux einen bestimmten Pfad und ein anderes Installationsprogramm benötigt.

  4. Ich benutze Perl, Python, Ruby Mode zusammen mit anderen html, css, js-2 und nxml

Gibt es irgendeine spezifische Methode/Ratschläge, um die gemeinsame emacs-Umgebung zwischen Windows und Linux zu verwalten? insbesondere wie man den Programmpfad verwaltet?

7voto

Noufal Ibrahim Punkte 68934

Es gibt keinen wirklich einfachen Weg. Sie müssten die meisten (wenn nicht sogar alle) Ihrer plattformspezifischen Routinen in verschiedenen Dateien isolieren und sie nach der Überprüfung auf die Plattform laden.

Steve Yegge hat einige Informationen darüber, wie er seine .emacs-Datei verwaltet, zusammen mit dem eigentlichen Code selbst unter ici . Einer seiner Punkte ist, wie er hält ist plattformübergreifend hackable. Es ist eine Lektüre wert.

3voto

Laurynas Biveinis Punkte 10222

Ich habe eine sehr ähnliche Konfiguration wie Sie (Emacs 22.1, 22.2, 23.1 auf verschiedenen Linux-Versionen mit und ohne X und Windows mit und ohne Cygwin). Mein Setup enthält ELPA, auctex, emacsw32, CEDET, JDEE, nxml und verschiedene andere Elisp-Pakete. Ich verwende nicht das, was mit dem System geliefert wird, sondern halte Kopien dieser Pakete in Subversion.

Der Großteil der Einstellungen funktioniert einfach in allen Umgebungen. Was die Pfade angeht, denke ich, dass die meisten Dinge, die man aufrufen möchte, wie aspell, auch außerhalb von Emacs von der Kommandozeile aus aufgerufen werden können, so dass es sich lohnt, sie in den $PATH zu packen und so zu vermeiden, dass man die vollen Pfade in Emacs angeben muss.

Für andere Dinge tue ich In .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.

Wo in 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
)

Und in 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...

)

Im Grunde geht es darum, Dinge auf einem System einzurichten, sie auf einem anderen auszuprobieren und alles zu berücksichtigen, was sich von der systemspezifischen Einrichtung unterscheiden muss.

Und der Artikel von Steve Yegge in der Antwort von Noufal ist ein sehr guter Artikel.

0voto

Alex Ott Punkte 61759

Sie können sich an meine emacs-Konfigurationen , wobei die Vorgänge für verschiedene Rechner in separate Dateien aufgeteilt werden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X