by shigemk2

当面は技術的なことしか書かない

好きなところにカーソルを移動させるjaunte.el その2

すっげぇ今更なエントリではありますけど…
好きなところにカーソルを移動させるjaunte.el - by shigemk2

僕たまにこれ使っているのね。 一般的な説明だとHint-a-hintの拡張と呼ばれているらしいけど。
見えてるバッファの中でしか移動できないのが難点かもしれないけど、
割と手軽に移動できるのはいいかもしれない。

で、ちょっと使いかたが分からなかったので、またエントリーを書きます。

C-c C-j(デフォルト)を実行すると色々とハイライトされるので、
対応する文字列を入力したらハイライトされたところにカーソルが動く寸法です。

ところがこれ、文字が1つだけのところにカーソルを動かすときは、どうしたらいいんだろう。
l とか jとか、 ja とか lkみたいなかんじでよくハイライトが出現するけど、
lって入力して放っておいてもlのところにカーソル動かないし。
C-g ってやったらハイライト自体消えちゃうし。

答えはソースコードjaunte.elの後半部分に書いてありました。

(defun jaunte ()
  (interactive)
  (jaunte-show-hints)
  (unwind-protect
      (let (k key)
        (while (not (null jaunte--hints))
          (setq k (read-event (concat "Jaunte to " key)))
          (if (and (not (null key))
                   (or (equal k 13) ;; C-m
                       (equal k 10) ;; C-j
                       (equal k 'return))) ;; RET
              (jaunte-search key t)
            (setq key (concat key (char-to-string k)))
            (jaunte-search key))
          (if (= 1 (length jaunte--hints))
              (progn (jaunte-to (car jaunte--hints)) (jaunte-remove-hints)))))
    (jaunte-remove-hints)))

C-mとかC-jとかやればいいんだって。なるほど。