2010-01-12 9 views
9

Uso emacs para edición de textos y desarrollo de guiones. Uso ambas ventanas y la distribución ubuntu emacs 23.1.cómo configurar el entorno común de emacs para windows y linux computers?

Ahora quiero que tanto mi entorno Linux como el de Windows repliquen el mismo entorno.

  1. yo salvo mi entorno emacs aquí https://bitbucket.org/krish/emacs/, por lo que la sincronización de archivos no será un problema.

  2. no tengo ningún ajuste de resolución diferentes, tanto para el envionment

  3. que utilizo aspell que necesitan ruta específica y diferente de instalación en Windows y Linux

  4. utilizo Perl, Python, el modo de rubí junto con otros html, css, js-2 y nxml

¿hay alguna forma específica/aconsejan para gestionar el entorno emacs común entre windows y Linux? especialmente cómo administrar la ruta del programa?

Respuesta

7

No hay una manera directa. Tendría que aislar la mayoría (si no todas) las rutinas específicas de su plataforma en diferentes archivos y cargarlos después de buscar la plataforma.

Steve Yegge tiene alguna información sobre cómo maneja su archivo .emacs junto con el código real en sí mismo sobre here. Uno de sus puntos es cómo lo mantiene es multiplataforma hackeable. Vale la pena leerlo.

3

Tengo una configuración muy similar a la suya (Emacs 22.1, 22.2, 23.1 en varias versiones de Linux con y sin X y Windows con y sin Cygwin). Mi configuración incluye ELPA, auctex, emacsw32, CEDET, JDEE, nxml y varios otros paquetes de elisp. No uso lo que viene con el sistema, pero guardo copias de esos paquetes en subversión.

La mayoría de la configuración solo funciona en todos los entornos. En cuanto a las rutas, creo que la mayoría de las cosas que uno quiere llamar, como aspell, también se pueden llamar fuera de Emacs desde la línea de comandos, por lo que vale la pena ponerlas en $ PATH, evitando así tener que especificar rutas completas en Emacs.

Para otras cosas, hago 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. 

Donde en 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 
) 

Y en 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... 

) 

Básicamente se trata de configurar las cosas en un sistema, probarlas en otro y factorizar lo que sea necesario diferir diferente a la configuración específica del sistema.

Y el artículo de Steve Yegge en la respuesta de Noufal es muy bueno.

+0

+1 de código real. Debo aprender a ser menos perezoso la próxima vez. :) –

0

Usted puede mirar a my emacs configs, donde las operaciones para las máquinas de differnet de todas formas dividido en archivos separados

Cuestiones relacionadas