quick-bookmark

emacs で、ちょっと場所を覚えておいて、他の場所を見てから、
戻ってきたいときがある。

そんな時、このelispが使える。

emacsにはもともとレジスタというものがあり、
そこに様々な情報を格納出来る。

例えば、カーソルの位置やバッファの名前、ファイル名だ。

レジスタの名前は英数字で決めることが出来る。

しかし、だ。
レジスタへの位置の記録は、以下のようなキーバインドだ。

C-x r SPC r

これでは、長くてやってられない。
そもそも覚えるのはひとつでいいのだ。
ちょっと覚えておきたいだけなのだから。

そこで、以下のコードだ。

;; quick bookmark
(defun set-quick-bookmark()
  "set quick bookmark"
  (interactive)
  (progn (point-to-register ?t)
         (message "栞を入れました。" )))
(defun go-quick-bookmark()
  "go quick bookmark"
  (interactive)
  (progn (jump-to-register ?t)
         (message "栞まで飛びます。")))

(global-set-key (kbd "C-,") 'set-quick-bookmark)
(global-set-key (kbd "C-." ) 'go-quick-bookmark)
(define-key php-mode-map (kbd "C-,") 'set-quick-bookmark)
(define-key js2-mode-map (kbd "C-,") 'set-quick-bookmark)

これを実行すると、C-, でその場所を記憶し、C-. でその場所まで戻る。

これが慣れると本当に使える。