2009-06-05 2 views
3

GNU Emacs에서 Xemacs로 점진적으로 전환하고 싶습니다. 두 가지 놀이를 잘하기 위해 사용할 수있는 트릭이 있습니까?GNU 이맥스와 xemacs가 공존하는 좋은 습관은 무엇입니까

현재, 나는 다음과 같은 문제를 참조하십시오

이맥스의 변경합니다 이맥스 이 두 가지가 서로 .elc 파일을 좋아하지 않는다.

감사합니다.

+0

xemacs와 emacs cohabitating? 유엔에 따르면 나는 이것이 합법적이라고 생각하지 않았다. – Cheeso

답변

6

재미있는 점은 XEmacs가 꽤 잠복 해 있다고 (xemacs-announce 목록의 활동을 기반으로) 믿는 것처럼 흥미로운 부분이 대부분 다른 방향으로 움직이는 것처럼 보입니다. 간단한 패키지는 공존 할 수 있지만, 많은 사람들은 XEmacs와 Emacs 모두에서 패키지를 작동하지 못하게합니다.

그러나 귀하의 질문에 대한 대답으로 두 가지 모두에서 .emacs가 작동하도록하려면이 두 함수 사이에서 함수 변환을 수행하는 루틴을 작성하기 시작합니다. 예를 들어, 하나 개의 점에서 나는이 필요 이맥스에서 일을 내 이맥스를 얻을 수 있습니다 :

(setq GNU (not (string-match "XEmacs\\|Lucid" (emacs-version)))) 
(if GNU 
    (do-emacs-thing) 
    (do-xemacs-thing)) 

:

(if (not (fboundp 'tags-table-files)) 
    (defun tags-table-files() 
     (tag-table-files tags-file-name))) 

다른 일들이 내가 변수 GNU에 저장된 이맥스 변형, 트리거 된 내가 파일을 이맥스 컴파일이했던되어 유지되었다

(setq compiled-dot-emacs-name (format ".emacs-%d%s" emacs-major-version 
                (if GNU "" "X"))) 

컴파일 된 패키지에 대해서는, 나는 아마 하나의 디렉토리에 (이맥스 혀짤배기 말을) 모든 .el 파일을 저장 싶지만, (AN 이맥스 변형이 xemacs- 리 sp)에 .el 파일에 대한 심볼릭 링크가 있습니다. 그리고 적당한 Emacs 변형에서 각 디렉토리를 바이트로 컴파일하고로드 경로가 올바른 디렉토리를 가리키는 지 확인하십시오.

이맥스 위키에는 Emacs versus XEmacs에 대한 페이지가 있습니다.이 두 페이지는 그 (것)들을 공유하기 위하여 다른 끝을 계산하기 좋은 출발점일지도 모르다. 특히 customizing both에 대한 페이지가 있습니다.

2

현대 시스템에서는 더 이상 미리 컴파일 된 elisp 파일이 필요하지 않습니다. 파일을보고 변경하는 이점은 훨씬 더 높습니다.

이맥스는 : .emacs_startup에 자신의 정의를 넣어 (또는 prefere 이름있는) 거기에 모든 GNU-enmacs 물건을 넣어 당신의 이맥스

4

내가 이맥스를 사용하지 않는에서 조건부 부하를 넣어 더 새로운 GNU 이맥스는 .emacs.d/init.el을 검사 할 것이므로 .emacs를 init.el으로 옮기는 것이 합리적 일 것입니다. 또한 두 가지 모두에 적용 할 수있는 맞춤 설정을 유지 관리하는 경우이를 .xemacs/init.el에 연결할 수 있습니다.

emacswiki에서 선호하는 이맥스에 대한 토론도 있습니다.

3

오래전에 저는 Xemacs에서 Emacs 로의 천천히 움직이기 시작했습니다. 이제는 매일 둘 다 사용합니다. 전환을보다 원활하게하기 위해 (init 파일 한 세트), 다음 .emacs 파일을 http://xemacs.seanm.ca/_emacs에서 훔쳤습니다 (링크가 죽었습니다).

(setq user-init-file 
     (expand-file-name "init.el" 
         (expand-file-name ".xemacs" "~"))) 
(setq custom-file 
     (expand-file-name "custom.el" 
         (expand-file-name ".xemacs" "~"))) 

(if (file-exists-p user-init-file) 
    (load-file user-init-file)) 
(if (file-exists-p custom-file) 
    (load-file custom-file)) 

내 ~/.xemacs/init.내가 가지고있는 매우 분명하다에 (가끔 (있는 경우 실행 - 이맥스를 ...)) 다음에서

(unless (boundp 'running-xemacs) 
    (defvar running-xemacs nil)) 
(setq load-path (cons "~/.elisp" load-path))    ; packages for both emacsen 
(if running-xemacs 
    (setq load-path (cons "~/.elisp/xemacs" load-path)) ; packages for Xemacs only 
    (setq load-path (cons "~/.elisp/gnuemacs" load-path))) ; packages for Gnuemacs only 

: 엘과 함께 시작합니다. ~/.elisp에서 모든 .elc 파일을 삭제했지만, Trey Jackson의 제안이 효과가 있다고 생각합니다.

관련 문제