2009-08-19 2 views
1

私はaplus-fsf-devとaplus-fsf-elパッケージを使ってDebianでA +をインストールし、XEmacsをセットアップしました。 XEmacsは依存関係としてインストールされました。A +とEmacs(しかし、* XEmacsではない)

私はA +サイト(http://www.aplusdev.org/)を調べました。プレーンなEmacs(XEmacsではなく)でA +を実行することについては何もないようです。

普通の(FSF)EmacsでA +を設定するためのどこかにelispファイルがあるかどうか知っていますか?

ありがとうございます!

PS:XEmacsのelispファイルはEmacs上で動作しません。私はそれらを変換しようとしましたが、コードにもっと遠くに行き、私はあきらめました。

PS2:私は(「アプラスを必要とし)んEmacsの、で、これは私が得るものです:

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番目の質問です。 –

答えて

2

答えが始まります。 SOは、実行中のデバッグセッション用に設計されたものではありませんでしたが、ここにあります。

EmacsとXEmacsの両方で同じ.elファイルをロード可能にするかどうかによって、違いをどのように分離するかを把握する必要があります。

Emacsでキーを定義する最も移植性の高い方法は、'kbdマクロを使用しています。だから、'define-key呼び出しは次のようになります。

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

私はA-修飾子リストが何のためにあるのかわかりませんが、それはおそらく'kbdに渡す文字列にマッサージすることができます。 'kbdまたは'read-kbd-macroの良い紹介はhereです。 A long Emacsのキーバインディングに関するドキュメントはhereです。これは、キーバインディングのためのあらゆる種類の表記法をカバーしています。おそらく、XEmacsの一部を解読するために使用されるでしょう。

関連する問題