2009-08-19 3 views
1

나는 aplus-fsf-dev와 aplus-fsf-el 패키지를 사용하여 A +를 설치하고 데비안에서 XEmacs를 설정했습니다. XEmacs는 종속물로 설치되었습니다.A +와 Emacs (그러나 * XEmacs가 아님)

A + 사이트 (http://www.aplusdev.org/)를 확인한 결과 일반 이맥스 (XEmacs 제외)에서는 A +를 실행하는 데 아무런 문제가없는 것으로 보입니다.

일반인 (FSF) 이맥스에서 A +를 설정하기위한 elisp 파일이 있는지 아는 사람 있습니까?

감사합니다.

추신 : 따라서, XEmacs 용 elisp 파일은 Emacs에서 실행되지 않습니다. 나는 그것들을 변환하려고 시도했지만, 나는 그 코드로 더 멀리 가야만했다. 그래서 나는 포기했다.

PS2 : 나는이 (Aplus의 '필요) 할 이맥스에서, 이것은 내가 무엇을 얻을 수 있습니다 :

Debugger entered--Lisp error: (wrong-type-argument arrayp (super 97)) 
    define-key((keymap) (super 97) a-self-insert) 
    (let ((key ...) (apl ...)) (define-key a-minor-map (append a-modifier-list ...) (quote a-self-insert)) (define-key a-minor-map (vector ... key) (quote a-self-insert)) (aset a-key-string (char-to-int key) apl)) 
    a-insert-map((97 . 193)) 
    mapcar(a-insert-map ((97 . 193) (98 . 194) (99 . 195) (100 . 196) (101 . 197) (102 . 95) (103 . 199) (104 . 200) (105 . 201) (106 . 202) (107 . 39) (108 . 204) (109 . 124) (110 . 206) (111 . 207) (112 . 42) (113 . 63) (114 . 210) (115 . 211) (116 . 126) (117 . 213) (118 . 214) (119 . 215) (120 . 216) (121 . 217) (122 . 218) (49 . 161) (50 . 162) (51 . 60) (52 . 164) (53 . 61) (54 . 166) (55 . 62) (56 . 168) (57 . 169) (48 . 94) (45 . 171) (61 . 223) (92 . 220) (96 . 254) (44 . 172) (91 . 251) (93 . 253) (59 . 219) (39 . 221) (46 . 220) (47 . 175) (33 . 224) (64 . 230) (35 . 231) ...)) 
    eval-buffer(#<buffer *load*<3>> nil "/usr/share/emacs/site-lisp/aplus-fsf-el/keyb.el" nil t) ; Reading at buffer position 3754 
    load-with-code-conversion("/usr/share/emacs/site-lisp/aplus-fsf-el/keyb.el" "/usr/share/emacs/site-lisp/aplus-fsf-el/keyb.el" nil t) 
    require(keyb) 
    eval-buffer(#<buffer *load*<2>> nil "/usr/share/emacs/site-lisp/aplus-fsf-el/xa.el" nil t) ; Reading at buffer position 16 
    load-with-code-conversion("/usr/share/emacs/site-lisp/aplus-fsf-el/xa.el" "/usr/share/emacs/site-lisp/aplus-fsf-el/xa.el" nil t) 
    load("xa" nil t) 
    (if aplus-setup-global-bindings (load "xa" nil t)) 
    eval-buffer(#<buffer *load*> nil "/usr/share/emacs/site-lisp/aplus-fsf-el/aplus.el" nil t) ; Reading at buffer position 1373 
    load-with-code-conversion("/usr/share/emacs/site-lisp/aplus-fsf-el/aplus.el" "/usr/share/emacs/site-lisp/aplus-fsf-el/aplus.el" nil t) 
    require(aplus) 
    eval((require (quote aplus))) 
    eval-last-sexp-1(nil) 
    eval-last-sexp(nil) 
    call-interactively(eval-last-sexp nil nil) 

이 keyb.el에이 기능이 있기 때문에입니다 :

(defun a-insert-map (akeydef) 
    (let ((key (car akeydef)) 
     (apl (cdr akeydef))) 
    (define-key a-minor-map (append a-modifier-list (list key)) 'a-self-insert) 
    (define-key a-minor-map (vector '(control c) key) 'a-self-insert) 
    (aset a-key-string (char-to-int key) apl))) 

나는 vconcat에 append를 바꾼 다음이 함수의 마지막 줄에서 Emacs가 char-to-int 함수를 가지고 있지 않기 때문에 에러가 발생했다. Emacs가 이미 그 문자를 숫자로 취급 할 것이라는 것을 알고 있기 때문에 함수 호출을 제거하고 인수 ("key")로 대체했습니다.

기타 다른 기능에는 그다지 명백하지 않은 오류가있었습니다. 대부분은 정의 키와 키맵을 처리합니다.

Emacs와 XEmacs가 키맵을 다르게 처리한다고 생각합니까?

+0

Emacs에서 실행 해 보셨습니까? 그렇다면 실패한 점은 무엇입니까? 그것들은 다르지 않습니다. –

+0

예, 시도했습니다 ... (추기경에 방금 추가 한 추신을 참조하십시오.) – Jay

+1

발생한 문제를보고하고 그러한 특정 문제에 대한 도움을 얻으면 더 많은 마일리지를 얻을 수 있습니다. 현재이 질문은 [a +]의 두 번째 질문에만 해당됩니다. –

답변

2

답변을 시작하십시오. 그래서 실제로 실행중인 디버깅 세션을 위해 설계된 것은 아니지만 여기에 설명되어 있습니다.

Emacs와 XEmacs에서 같은 .el 파일을로드 할 수 있는지 여부에 따라 차이점을 어떻게 분리 할 것인지 파악해야합니다.

Emacs에서 키를 정의하는 가장 (?) 이식성있는 방법은 'kbd 매크로를 사용하는 것입니다. 그래서, 'define-key 호출과 같이 보일 것입니다 : 나는이 (가) - 수정 -리스트가 무엇인지 모르는

(define-key a-minor-map (kbd (format "C-c %c" key)) 'a-self-insert) 

을하지만, 아마도 'kbd에 전달할 문자열로 마사지 할 수있다. 'kbd 또는 'read-kbd-macro에 대한 좋은 소개는 here입니다. A 이맥스 키 바인딩에 관한 문서는 here입니다. 그것은 모든 종류의 키 바인딩에 대한 표기법을 다루며 아마도 XEmacs의 일부를 해독하는 데 사용될 것입니다.