2010-01-12 10 views
9

J'utilise emacs pour l'édition de texte et le développement de scripts. J'utilise à la fois les fenêtres et la distribution 23.1 d'emacs d'ubuntu.Comment configurer l'environnement emacs commun pour les ordinateurs Windows et Linux?

Maintenant je veux que mon environnement Linux et Windows répète le même environnement.

  1. Je vais sauver mon environnement emacs ici https://bitbucket.org/krish/emacs/, donc la synchronisation fichier ne sera pas problème.

  2. Je n'ai pas différents paramètres de résolution tant pour les envionment

  3. J'utilise aspell qui ont besoin chemin spécifique et différent d'installation sous Windows et Linux

  4. J'utilise perl, python, mode rubis ainsi que d'autres html, css, js-2 et nxml

Existe-t-il un moyen spécifique/conseiller pour gérer l'environnement emacs commun entre windows et linux? surtout comment gérer le chemin du programme?

Répondre

7

Il n'y a pas vraiment de moyen simple. Vous devez isoler la plupart (sinon toutes) vos routines spécifiques à la plate-forme dans différents fichiers et les charger après avoir vérifié la plate-forme.

Steve Yegge a quelques informations sur la façon dont il gère son fichier .emacs avec le code lui-même sur here. Un de ses points est la façon dont il garde est cross-plateforme piratable. Ça vaut le coup de lire.

3

J'ai une configuration très similaire à la vôtre (Emacs 22.1, 22.2, 23.1 sur diverses versions de Linux avec et sans X et Windows avec et sans Cygwin). Ma configuration inclut ELPA, auctex, emacsw32, CEDET, JDEE, nxml et divers autres paquets elisp. Je n'utilise pas ce qui vient avec le système mais garde des copies de ces paquets dans subversion.

La majorité de la configuration fonctionne uniquement dans tous les environnements. En ce qui concerne les chemins, je pense que la majorité des choses que l'on veut appeler, comme aspell, peuvent être appelées en dehors d'Emacs à partir de la ligne de commande, donc cela vaut la peine de les placer dans $ PATH.

pour d'autres choses, je En .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. 

Où dans 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 
) 

Et 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... 

) 

Fondamentalement, il s'agit de mettre les choses en place sur un système, de les essayer les unes sur les autres et de prendre en compte tout ce qui doit être dif à la configuration spécifique au système.

Et l'article de Steve Yegge dans la réponse de Noufal est très bon.

+0

+1 pour le code réel. Je dois apprendre à être moins paresseux la prochaine fois. :) –

0

Vous pouvez chercher à my emacs configs, où les opérations pour les machines differnet sont des fichiers séparés découpés en