emacs22 系で BS キー / Del キー入れ換え
FreeBSD6.3 にしてからというか、emacs22 系にしてからだと思うが、BS キーと Del キーの入れ換えが機能しなくなったようだ。通常は、Mac の X11 サーバに FreeBSD の emacs を X のクライアントとして表示させ Mac の英語キーボードから操作していたからか、全く気づかずに使っていた。そんな折、リモートでログインし kterm から emacs -nw で起動してみたところ、del キーが効かずにヘルプが表示されるようになっていたのだ。もちろん C-h も効かすにヘルプが登場する。調べる時間もなく、仕方ないのでいちいちカーソルを移動して消していたがもう我慢ならず調べてみた。元々 .emacs には、大昔から bobcat (わたしが個人的にボブキャットと呼んでいる)を定義していた。
(load-library "term/bobcat")
どうやらこれが効いてないようだ。
emacs 21 系の bobcat を見ると
(load "term/keyswap" nil t)
たらい回しかい、ということで keyswap を見ると、
(let *1
ということで、キーを入れかえている。(カッコが二重になるとはてな記法にひっかかるのでスペースを入れてある。)
今度は、emacs22 系のボブキャットを見てみると
(defun terminal-init-bobcat () "Terminal initialization function for bobcat." ;; HP terminals usually encourage using ^H as the rubout character (keyboard-translate ?\177 ?\^h) (keyboard-translate ?\^h ?\177))
ということで、定義だけになってしまったようだ。
それならば、ということで、手元の .emacs を修正した。つか、呼ぶだけなのだが。
(load-library "term/bobcat") (terminal-init-bobcat)
これでストレス無くキー操作ができるようになった。
*1:the-table (make-string 128 0))) (let ( ( i 0 ) ) (while (< i 128) (aset the-table i i) (setq i (1+ i)))) ;; Swap ^H and DEL (aset the-table ?\177 ?\^h) (aset the-table ?\^h ?\177) (setq keyboard-translate-table the-table