Re: buffer 内の位置を読み込む方法は
難波と申します。
現在、投稿記事がちゃんと出ていかないようなので、失礼ながらメールで。
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 のトグル、のように)訳ですが、もし参考になれば。
もし私の記事が出ていってなければ、この内容は発表してもらって構いません。
--
難波清一@東京都西東京市
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735