- ace-jump-mode 20140616.115(in MELPA)
- a quick cursor location minor mode for emacs
概要
ace-jump-char-modeがMigemo化されました!!!
これまで何回か ace-jump 関係の記事を書きましたが、
大元のace-jump-modeの記事はまだでした。
なので ace-jump-mode.el を紹介します。
これは、画面内の任意の場所に3ストローク以下で移動するコマンドです。
元来、任意の場所にカーソルを移動させるには
インクリメンタルサーチ(isearch)が王道でした。
しかし、画面に表示されている範囲に限定すると
isearchはもはや時代遅れの方法なのです…
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてace-jump-modeを使う方は
以下のコマンドを実行します。
M-x package-install ace-jump-mode
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name ace-jump-mode
設定 141009120801.ace-jump-mode.el(以下のコードと同一)
;; ヒント文字に使う文字を指定する (setq ace-jump-mode-move-keys (append "asdfghjkl;:]qwertyuiop@zxcvbnm,." nil)) ;; ace-jump-word-modeのとき文字を尋ねないようにする (setq ace-jump-word-mode-use-query-char nil) (global-set-key (kbd "C-:") 'ace-jump-char-mode) (global-set-key (kbd "C-;") 'ace-jump-word-mode) (global-set-key (kbd "C-M-;") 'ace-jump-line-mode)
実行方法
$ wget http://rubikitch.com/f/141009120801.ace-jump-mode.el $ emacs -Q -f package-initialize -l 141009120801.ace-jump-mode.el
3種類のモード
ace-jump-modeには3種類のモードがあります。
- M-x ace-jump-char-mode
- M-x ace-jump-word-mode
- M-x ace-jump-line-mode
それぞれ文字、単語、行への移動です。
M-x ace-jump-char-modeでは文字を打ち込む必要がありますが、
残りの2つはコマンドを実行した時点でジャンプする準備ができています。
そのため、これらのコマンドを1ストロークのキーに割り当てておけば
任意の単語・行へ2ストロークで到達できる場合もあります。
僕がしばらくace-jump-modeを使ったところ、
eshell / shell / 日本語を含むバッファにおいては ace-jump-word-mode 、
プログラミング言語のソースコードには ace-jump-char-mode
が快適だとわかりました。
任意の場所に3ストロークで移動!
この設定ではC-:にace-jump-char-modeを割り当てていますが、
昨日紹介した ace-isearch.el と組み合わせれば
ace-jump-char-modeをキーに割り当てる必要はなくなります。
C-s 文字 ヒント文字
の3ストロークで
画面内の任意の場所に移動できるようになります。
ヒント文字とは、ace-jumpを実行したときに表示される
赤い文字のことで、その文字をタイプすれば
その場所にカーソルが移動します。
Fig1: M-x ace-jump-word-modeでのヒント文字
isearch vs ace-jump-mode
ace-jump-modeは画面内に特化していて、
isearchよりもストローク数は少なく
他のウィンドウにも移動できます。
3ストロークというのは驚異的に少ないです。
isearchを使う場合、
C-s(C-r) 文字 RET
であっさりと3ストローク使っていしまいます。
移動したい文字が複数個表示されている場合がほとんどですが、
そのときは次の文字を打つかC-sやC-rで再検索する必要があります。
この時点で4ストローク以上になってしまいますね。
また、別ウィンドウの場合C-x oであっさり2ストローク消費します。
C-tなど1ストロークに M-x other-window を割り当てたとしても
貴重な1ストロークを消費します。
よって近距離における検索ベースの移動は
ace-jump-modeかその類似品が最強です。
本サイト内の関連パッケージ
- avy - tree-based completion
- ace-jump-buffer - fast buffer switching extension to `avy'
- ace-jump-zap - Character zapping, `ace-jump-mode` style
- ace-isearch - A seamless bridge between isearch, ace-jump-mode, avy, helm-swoop and swiper
- ace-pinyin - Jump to Chinese characters using avy or ace-jump-mode
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。