2010-01-12 3 views
9

Ich benutze Emacs für Textbearbeitung und Skriptentwicklung. Ich benutze beide Fenster und Ubuntu Emacs 23.1 Verteilung.Wie man eine gemeinsame Emacs-Umgebung für Windows und Linux-Computer einrichten kann?

Nun möchte ich sowohl meine Linux und Windows-Umgebung die gleiche Umgebung replizieren.

  1. werde ich meine Emacs-Umgebung speichern hier https://bitbucket.org/krish/emacs/, so Synchronisation wird nicht Problem-Datei.

  2. Ich habe keine unterschiedlichen Auflösungen sowohl für die envionment

  3. ich aspell verwenden, die in Windows und Linux spezifischen Pfad und verschiedene Installer benötigen

  4. Ich benutze Perl, Python, Ruby-Modus zusammen mit anderen hTML, CSS, JS-2 und nxml

gibt es spezifische Art und Weise/beraten die gemeinsame emacs Umgebung zwischen Windows und linux zu verwalten? vor allem, wie man den Programmpfad verwaltet?

Antwort

7

Es gibt keinen wirklich direkten Weg. Sie müssten die meisten (wenn nicht alle) plattformspezifischen Routinen in verschiedene Dateien isolieren und nach der Plattformprüfung laden.

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

3

Ich habe eine sehr ähnliche Konfiguration wie Ihre (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, was mit dem System kommt, sondern Kopien dieser Pakete in Subversion.

Mehrheit der Einrichtung funktioniert nur in allen Umgebungen. Bezüglich Pfaden denke ich, dass die Mehrheit der Dinge, die man nennen möchte, wie aspell, auch außerhalb von Emacs von der Kommandozeile aus aufgerufen werden kann, so dass es sinnvoll ist, sie in $ PATH zu setzen, so dass keine vollständigen Pfade in Emacs angegeben werden müssen.

Für andere Dinge, 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 aufzustellen, sie auf einem anderen System auszuprobieren und alles auszumerzen, was nötig ist dem systemspezifischen Setup entsprechen.

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

+0

+1 für tatsächlichen Code gespaltet werden. Ich muss lernen, beim nächsten Mal weniger faul zu sein. :) –

0

Sie zu my emacs configs aussehen können, wo Operationen für differnet Maschinen in separate Dateien

Verwandte Themen