;; 難波さんの記事は配送されてきましたよ。:)

>>>>> In <uk6xf45hq.fsf@tonewin.kuciv.kyoto-u.ac.jp>
>>>>>    ms@wr.kuciv.kyoto-u.ac.jp wrote:

> (point) は、現在のカーソルの位置を返します。これとは違って、
> つぎのような関数がないでしょうか。

>   その関数を実行すると、それ以降キーを監視して、

>        * 矢印キー あるいは、C-n, C-p, C-b, C-f だったら、その矢
>          印キーあういは C-n, C-p, C-b, C-f をタイプしたときの通
>          常の動作にしたがってカーソル位置が変更される。

>        * それ以外のキーを押したら、そのときのカーソル位置を返す。

> ちょっと自分で書いてみたのですが、不十分です。

[...]

> get-point が、求める関数のつもりですが、つぎの点で不十分です。

>   * 矢印キーには対応できていない。read-movement 関数で使用してい
>     る read-char ではダメ。

read-event ではいかがでしょうか?  C-p => 16, ↑ => up

>   * ミニバッファに押したキーに関する情報がエコーされるのが嫌。

      (setq p (read-char))

の代わりに

      (setq p (let ((echo-keystrokes 0)) (read-event)))

のようにして キーを読むときだけ echo-keystrokes の値を 0 に束縛
するとか。

キーを読んで何かする関数の代わりに、Emacs 流のマイナーモードを書
いてみました。M-x get-point-mode RET で開始、q で終了です。

--8<---------------cut here---------------start------------->8---
(defvar get-point-mode-map nil)

(if get-point-mode-map
    nil
  (let ((map (make-sparse-keymap))
        (commands '(backward-char forward-char next-line previous-line))
        command keys key)
    (define-key map [t] (lambda nil
                          (interactive)
                          (message "%s" (point))))
    (define-key map "q" (lambda nil
                          (interactive)
                          (call-interactively 'get-point-mode)))
    (while commands
      (setq command (car commands)
            commands (cdr commands)
            keys (where-is-internal command global-map))
      (while keys
        (setq key (car keys)
              keys (cdr keys))
        (define-key map key command)))
    (setq get-point-mode-map map)))

(define-minor-mode get-point-mode
  "Show point in the echo area."
  nil " Get-Point" get-point-mode-map)
--8<---------------cut here---------------end--------------->8---

define-minor-mode でもって get-point-mode というトグル・コマンド
(関数) を生成させます。そのマイナーモードが ON のとき、通常のキー
マップの代わりに get-point-mode-map が使われます。プログラム中の

(define-key map [t] コマンド)

における [t] というキーは、特にコマンドを割り振っていない全部の
キーを指します。

;; こうして眺めると、過去に先達の皆さんから教わったことの集大成
;; だなあ。:)
-- 
Katsumi Yamaoka <yamaoka@jpl.org>