難波と申します。

現在、投稿記事がちゃんと出ていかないようなので、失礼ながらメールで。

ms@wr.kuciv.kyoto-u.ac.jp さん writes:

> get-point が、求める関数のつもりですが、つぎの点で不十分です。
> 
>   * 矢印キーには対応できていない。read-movement 関数で使用してい
>     る read-char ではダメ。
> 
>   * ミニバッファに押したキーに関する情報がエコーされるのが嫌。
> 
> こういうときに使用する関数がすでにあれば教えてください。上に書い
> たコードを直せばよいのなら、その方法を教えていただけないでしょうか。

カーソルキー(理論的にはマウスも)の対応は read-char のかわりに
read-event でご希望通りになると思いますが、

キーストロークのエコーに関しては、echo-keystrokes を一時 nil にする、
たとえば

(defun my-read-event ()
  (interactive)
  (let (echo-keystrokes)
    (setq junk
          (read-char))))

とでもするんですかね。

一度 elisp のマニュアル(info)の read-char の前後を読んでおくと
いいでしょう。

なお、C-n, C-p などは、あまり変える人はいないと思うのでそんな感じで良
いと思いますが、互換性を高めるのであれば、これらにキーバインドされてい
るコマンドを調べて呼ぶようにするといいかもしれません。


普段は自分で書いた skk の互換品

 http://www.asahi-net.or.jp/~pi9s-nnb/lousy/

を使っていますが、この物件に入っている lkk-mclick.el には
キー操作を盗んで何かやる処理が書いてあります。上記の
「キーバインドを調べて…」の処理も入ってたと思います。

実際、lkk-mclick.el では、キーボードのダブルクリック(トリプル、クワド
ラプル…)を実現したかった([double-C-SPC] で save-buffer,
[double-M-SPC] で FEP のトグル、のように)訳ですが、もし参考になれば。


もし私の記事が出ていってなければ、この内容は発表してもらって構いません。

-- 
難波清一@東京都西東京市