C-g した場所をブックマークする

isearch した後に C-g してしまう癖がどうも抜けず、その度にカーソル位置が初期化されて困っていました。正解は、 RET の押下で isearch-exit を呼び出すことですが、なかなか慣れません。

そこで、万が一 C-g で初期位置にカーソルが飛んでしまっても、その直前にすぐカーソルを戻せるようにブックマークするようにしました。

拙作の ah.el に当該の hook を加えることで、 C-g に反応するイベントを簡単に追加できます。

(defvar my-cg-bookmark "c-g-point-last")
(defun my-cg-bookmark ()
  (push-mark)
  (when (and buffer-file-name
             isearch-mode)
    (bookmark-set my-cg-bookmark)))
(when (require 'ah nil t)
  (add-hook 'ah-before-c-g-hook #'my-cg-bookmark)
  (ah-mode 1))

C-g で万が一カーソルが飛んでしまったら、 M-x list-bookmarks 或いは M-x counsel-bookmark から my-ag-bookmark に設定したブックマークを選択すれば、一発でカーソルを移動できます。

便利!

updates

  • [2021-02-11 Thu] mark を記録するように改良
  • [2019-10-06 Sun] buffer-file-name を確認するように改良
  • [2019-11-18 Mon] isearch-mode を確認するように改良
amazon_banner_large
amazon_banner_small