kkc の C-h で1文字前を消去

Emacs に最初から入ってる日本語入力メソッド、kkc の C-h をいわゆる backward-delete-char にする。
.emacs 的なのに、以下を書けばたぶんおk。

(require 'kkc)
(require 'quail)
(define-key kkc-keymap "\C-h" 'kkc-cancel)
(define-key quail-conversion-keymap (kbd "C-h")
  'quail-conversion-backward-delete-char)

とりあえず、上記を test-quail.el とかに書いて、emacs -q -l test-quail.el とかやって起動したら、C-h で1文字消えるようになた。
起動後(というか、1度、toggle-input-method した後)に、quail-conversion-keymap に設定しても何故か反映されなかった。
何かの変数(quail-current-package あたり?)に、キーマップの情報を保持しててそっちを見てるから、起動後(というか、最初に toggle-input-method した後?)に quail-conversion-keymap に設定しても無意味とかなのかなあ。
でも、深く追ってない。


2chスレを見て気になったから調べただけだったり。
それだけ。たぶん、頑張って、kkc 使うより、普通に IME だったり、ddskk だったりを使った方が便利だと思う。

更新時刻

  • 2010/07/22/01:22

Emacsでドヤが夫を簡易的なアニメーションでみたい

を見て、ふと思いついて、適当にでっちあげ。AA はそのまま流用させて頂きました。
あんまりテストしてないけど、以下の式評価して、M-x doya-show で流れる、はず。

(defun doya-show ()
  (interactive)
  (let ((doya-faces '("                      ___  まぁ確かに・・・
                    /⌒  '' ⌒\
                  /( ● ) (● )\             Emacsを立ち上げたのはお前
                /::⌒  ,    ゝ⌒::\    (⌒)
                |       `ー=-'     |    ノ~.レ-r┐、
                \               /   ノ  |.| |
.         ,  ⌒ ´  \      ̄   ´ !〈 ̄`- Lλ_レレ
        /    __       ヽ        |   ̄`ー‐-‐‐´
.      〃 ,. --ミ        ヽ     i   |/ハ /
      ji/     ̄`          ヽ  |"

                      "                      ___
                    /ノ '' ⌒\
                  /( ● ) (● )\でも、この画面まで来れたのは俺のおかげ
                /::⌒   ,   ゝ⌒::\
                |       ト==ィ'     |
    _,rーく´\  \,--、    `ー'    /
. ,-く ヽ.\ ヽ Y´  /   ー    ´ !`ー-、
  {  -!  l _」_ノ‐′/ ヽ            |    ∧
. ヽ  ゙ー'´ ヽ    /     ヽ        i  |/ハ
  `ゝ、    ノ  ノ         ヽ     |"


                      "                      ___
                    /ヽ ''ノ\
                  /( ● ) (● )\
                /::⌒    、_ゝ⌒::\   (⌒)          だろっ?
                |         -       |   ノ ~.レ-r┐、
                \               /  ノ_  |.| |
.         ,  ⌒ ´  \      ̄   ´ !〈 ̄  `-Lλ_レレ
        /    __       ヽ        |   ̄`ー‐-‐‐´
.      〃 ,. --ミ        ヽ     i    |/ハ  /
      ji/     ̄`          ヽ  |"))
        ol)
    (dolist (i doya-faces)
      (setq ol (make-overlay (window-start) (point-max)))
      ;; (setq i (propertize i 'face 'highlight))
      (unwind-protect
          (progn (overlay-put ol 'after-string i)
                 (overlay-put ol 'invisible t)
                 (redisplay)
                 (sleep-for 2)
                 (discard-input))
        (delete-overlay ol)))))

画面の真ん中に来るように調整できたら見栄えいいかもとかおもったけど、実装してない。
メッセージ引数に指定して変えれたら面白いかもとか一瞬思ったけど、実装してない。
Emacs 起動直後のバッファで表示できるようにするには、タイマーを起動時に走らせて、after-init-time が nil でなくなったらこいつを表示してタイマー削除すればうまくいくんじゃねとか妄想したけど試してない。
# initial-buffer-choice の値もみた方がいいのかなあ。よくわからん。

更新時刻

  • 2010/07/22/2:37