aplus-fsf-dev および aplus-fsf-el パッケージを使用して、A+ をインストールし、Debian に XEmacs をセットアップしました。XEmacs は依存関係としてインストールされました。
A+ サイト ( http://www.aplusdev.org/ ) を確認しましたが、(XEmacs ではなく) 普通の Emacs で A+ を実行することについては何もないようです。
プレーン (FSF) Emacs で A+ をセットアップするための elisp ファイルがどこかにあるかどうか知っている人はいますか?
ありがとう!
PS: そのため、XEmacs の elisp ファイルは Emacs では実行されません。変換してみましたが、コードをどんどん進めていかなければならず、断念しました。
PS2: Emacs で (require '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)))
append を vconcat に変更したところ、その関数の最後の行でエラーが発生しました。Emacs には char-to-int 関数がないためです。関数呼び出しを削除し、引数 ("key") 自体に置き換えました。これは、Emacs が既にその文字を数値として扱うことを理解しているためです。
次に、他の関数にそれほど明白ではないエラーがありました。それらのほとんどは定義キーとキーマップを扱っています。
Emacs と XEmacs ではキーマップの扱いが異なると思いますか?