- avy 20170804.1135(in MELPA)
- tree-based completion
概要
ace-jump-mode.el(レビュー)は画面内の単語や文字に移動する
高速なインターフェースとして人気があります。
ace-pinyin.el(レビュー)と併用すれば日本語文字にも対応してくれます。
avy.el も ace-jump-mode.el 同様ヒント文字を入力すると
その場所に移動するパッケージです。
ace-jump-modeは単独では素晴しいパッケージなのですが、
いざ拡張しようとするとやりにくいものがあります。
ace-jump-modeのインターフェースが気に入って他で使いたい
elispプログラマならばace-jump-mode.elに固執するのではなく
avy.elを使ってみましょう。
同じ作者によるace-window.el(レビュー)とace-link.el(レビュー) も
名前はaceとついているものの、実際はavyを使っています。
ace-jump-modeをすでに使っている人でも、
avy.elが提供している2つのコマンドを使ってみることをおすすめします。
- avy-goto-char-timer
- avy-goto-line
M-x avy-goto-char-timer は、 M-x ace-jump-char-mode の進化形です。
- 1文字入力して0.5秒後にその文字に対応するヒント文字が出る
- 0.5秒以内に2文字目も入力すると、2文字が連続する場所にヒント文字が出る
Fig1: C-@の後にiを押すとiの前にヒント文字が付く
Fig2: C-@の後に素早くisと押せばisの前にヒント文字が付く
M-x avy-goto-line は、 M-x ace-jump-line-mode と
標準の M-x goto-line を合体させたものです。
- 行頭のヒント文字を打てばその行に移動
- 数字を打ったらその時点でgoto-lineの働きをする
Fig3: M-g M-gの後にヒント文字が付く
Fig4: 数字を打てば標準のgoto-lineに移行
よってM-g M-gをそのままavy-goto-lineに割り当てても問題ありません。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてavyを使う方は
以下のコマンドを実行します。
M-x package-install avy
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name avy
併用が一番
他にもace-jump-modeに対応するavyなコマンドが定義されていますが、
日本語と併用する場合に表示がずれてしまいます。
文字幅が考慮されていないのが原因です。
これは我々日本人にとってはとても痛いです。
作者がCJKを知らないようなので無理もないですが、
今後のpull-reqが待たれるところです。
よって、ace-jump-modeを置き換えるのではなく、
併用していくのが一番ではないでしょうか。
Fig5: ace-jump-word-modeでは日本語でもずれない
Fig6: avy-goto-word-0ではずれてしまう><
本サイト内の関連パッケージ
- ace-jump-mode - a quick cursor location minor mode for emacs
- ace-link - Quickly follow links
- ace-window - Quickly switch windows.
- ace-pinyin - Jump to Chinese characters using avy or ace-jump-mode
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。