色々補完とかを見てみた。(その2 インクメンタルに補完)

コメントで教えてもらったので
プログラミング時の変数名の入力を楽に(修正)
http://web.archive.org/web/20050523225208/http://www-komo.ise.eng.osaka-u.ac.jp/~oka/xyzzy.html#dabbrev
 を見てて色々分かった。まず、ここで自分が前に書いてたインクリメンタルに補完はインクリメンタルの状態になるとキー入力以外を受け付けていなかったという問題があった(多分)けど、見た奴は、キーマップ的に入力されるであろうキーを全部設定しているのかなぁという感じ。何を押しても殆どのキーにdabbrev-popupを割り当てまくって、動かしているみたい。指定したキー以外だった場合は、インクリメンタルの状態から抜けやすくなっているんじゃないかと思ってみた。
 complete+とかは*post-command-hook*でキー入力をチェックしていたし、似たようなものでも人によってやり方が全然違うなぁとか思った。

■キー入力をチェックする方法を適当にメモ

  1. *post-command-hook*でなにか実行されるたびにチェック
  2. キーマップを作って、そこで入力に応じた動作に変更。
  3. キー入力を直接読み取ってそれに応じて動作。何度も読み取るためにはloop

3つ目のがここで書いた奴。2番目のがプログラミング時の変数名の入力を楽にの所のやり方。1つ目は時々見かけるやり方。自分もloopしないでやるときに使ったりしてた。結局loopさせずに読み取っていたのはキーマップとかを変更していたからloopする必要がないという感じみたい。

 ということで、早速マウスとかの入力のを受け付けるようにここで書いたのを改造。多少は良くなった。

とおもったら問題があったのでやめ。