- backward-forward 20161228.2150(in MELPA)
- navigation backwards and forwards across marks
概要
Emacsにはふたつのマークリング、
mark-ring
global-mark-ring
があるのですが、
あなたは使いこなせていますか?
バッファ内の移動において、
C-u C-SPC
で過去のマーク位置に
戻れる前者は便利ですよね。
けれど、僕は後者の
global-mark-ring
は
いまだに使いこなせません。
そこで、
backward-forward.el は
マークを統一して
使いやすくしてくれます。
両者を併合する
backward-forward-mark-ring
という
第3のマークを用意してくれます。
マイナーモード
M-x backward-forward-mode
を有効にすれば、
以下の効果が得られます。
C-left
で過去方向のマークへ移動(backward-forward-previous-location
)C-right
で未来方向のマークへ移動(backward-forward-next-location
)push-mark
時にbackward-forward-mark-ring
にも登録ggtags-find-tag-dwim
時にpush-mark
するswitch-to-buffer
時にpush-mark
する
よって、
- とりあえず前のマークに行きたいと思ったら
C-left
- 行きすぎたと思ったら
C-right
でバッファ内でもバッファ間でも
過去にマークした場所に
移動してくれるようになります。
この機能が気に入って
頻繁に使用するようになれば、
矢印キーにまで手をのばすのは億劫でしょう。
そのときは
backward-forward-mode-map
に
キーを割り当てましょう。
個人的に、
けっこういい感じにできていると思います。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてbackward-forwardを使う方は
以下のコマンドを実行します。
M-x package-install backward-forward
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name backward-forward
設定 170106081610.backward-forward.el(以下のコードと同一)
(backward-forward-mode 1) ;;; 慣れてきたら他のキーに割り当ててもよい (define-key backward-forward-mode-map (kbd "H-h") 'backward-forward-previous-location) (define-key backward-forward-mode-map (kbd "H-l") 'backward-forward-next-location) ;;; push-markしてほしいコマンドがあったらこのようにアドバイスを設定する ;; (advice-add 'ggtags-find-tag-dwim :before #'backward-forward-push-mark-wrapper)
実行方法
$ wget http://rubikitch.com/f/170106081610.backward-forward.el $ emacs -Q -f package-initialize -l 170106081610.backward-forward.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。