2010-01-12 38 views
9

Tôi sử dụng biểu tượng cảm xúc để chỉnh sửa văn bản và phát triển tập lệnh. Tôi sử dụng cả hai cửa sổ và ubuntu emacs 23.1 phân phối.làm thế nào để thiết lập môi trường emacs phổ biến cho các cửa sổ và máy tính Linux?

Bây giờ tôi muốn cả môi trường Linux và cửa sổ của mình sao chép cùng một môi trường.

  1. Tôi sẽ lưu môi trường emacs của mình tại đây https://bitbucket.org/krish/emacs/, vì vậy việc đồng bộ hóa tệp sẽ không thành vấn đề.

  2. tôi không có bất kỳ cài đặt độ phân giải khác nhau cho cả envionment

  3. tôi sử dụng aspell cần đường dẫn cụ thể và cài đặt khác nhau trong các cửa sổ và linux

  4. tôi sử dụng perl, python, ruby ​​chế độ cùng với các html, css, js-2 và nxml khác

Có cách nào/tư vấn quản lý môi trường emacs chung giữa các cửa sổ và Linux không? đặc biệt là cách quản lý đường dẫn chương trình?

Trả lời

7

Không có cách nào thực sự đơn giản. Bạn sẽ phải cô lập nhất (nếu không phải tất cả) nền tảng cụ thể của bạn thói quen vào các tập tin khác nhau và tải chúng lên sau khi kiểm tra cho nền tảng.

Steve Yegge có một số thông tin về cách anh quản lý tệp .emacs của mình cùng với mã thực tế trên here. Một trong những điểm của anh là cách anh giữ là nền tảng có thể hack được. Nó đáng đọc.

3

Tôi có thiết lập rất giống với thiết bị của bạn (Emacs 22.1, 22.2, 23.1 trên các phiên bản Linux khác nhau có và không có X và Windows có và không có Cygwin). Thiết lập của tôi bao gồm ELPA, auctex, emacsw32, CEDET, JDEE, nxml và các gói elisp khác nhau. Tôi không sử dụng bất cứ điều gì đi kèm với hệ thống nhưng giữ bản sao của những gói trong lật đổ.

Đa số thiết lập chỉ hoạt động trong mọi môi trường. Về đường dẫn, tôi nghĩ rằng phần lớn thứ mà người ta muốn gọi, chẳng hạn như aspell, có thể được gọi bên ngoài Emacs từ dòng lệnh, vì vậy đáng để đặt chúng vào $ PATH, do đó tránh phải chỉ định đường dẫn đầy đủ trong Emacs.

Đối với những thứ khác, tôi làm Trong 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. 

đâu trong 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 
) 

Và trong 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... 

) 

Về cơ bản nó là vấn đề thiết lập mọi thứ trên một hệ thống, thử chúng trên một hệ thống khác và tính ra bất cứ thứ gì cần phải khác lên đến thiết lập hệ thống cụ thể.

Và bài viết của Steve Yegge trong câu trả lời của Noufal là câu trả lời hay nhất.

+0

+1 cho mã thực tế. Tôi phải học ít lười hơn lần sau. :) –

0

Bạn có thể xem my emacs configs, nơi hoạt động của các máy khác nhau được chia thành các tệp riêng biệt

Các vấn đề liên quan