- ido-occasional 20150214.448(in MELPA)
- Use ido where you choose.
M-x package-install ido-vertical-mode
概要
優れた補完のインターフェースとして、 helm と ido があります。
確かになんでもできるhelmはとても優れていますが、
あいまいマッチ有効時のidoは打鍵数がhelmよりも少なくなります。
ido原理主義者ならば ido-ubiquitous.el(レビュー) を使えばいいですが、
helmには複数情報源・複数アクション・Migemo化 というメリットもあります。
よって、適材適所で両者を共存させるのがベストです。
そこで、 ido-occasional.el の出番です。
with-ido-completion マクロを使えば、
既存のコマンドの内部で使われている completing-read 関数(補完入力関数)を
idoのもの(ido-completing-read)に置き換えたコマンドを定義します。
機能としては、たったこれだけ(1つの関数と1つのマクロしか定義されていない)ですが、
より細かな制御ができるようになります。
(global-set-key (kbd "<f1> f") (with-ido-completion describe-function)) (global-set-key (kbd "<f1> v") (with-ido-completion describe-variable)) (global-set-key (kbd "<f2> i") (with-ido-completion info-lookup-symbol))
と定義しておけば、<f1> fはたとえ helm-mode が有効が有効であったとしても
idoの補完が使われるようになります。
それぞれ以下のコマンドが定義され、
そのまま global-set-key や define-key に設定できます。
- describe-function -> describe-function/with-ido
- describe-variable -> describe-variable/with-ido
- info-lookup-symbol -> info-lookup-symbol/with-ido
helm好きならば、ぜひともidoの候補を縦に並べる
ido-vertical-mode(レビュー) も入れておきましょう。
Fig1: ido化されたdescribe-function with ido-vertical-mode
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてido-occasionalを使う方は
以下のコマンドを実行します。
M-x package-install ido-occasional
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name ido-occasional
設定 150223080750.ido-occasional.el(以下のコードと同一)
;;; このときidoが使うwindowの高さは大きくした方がいい (setq ido-max-window-height 0.75) ;;; あいまいマッチは入れておこう (setq ido-enable-flex-matching t) (ido-mode 1) (ignore-errors (ido-vertical-mode 1) (setq ido-vertical-define-keys 'C-n-and-C-p-only)) (global-set-key (kbd "<f1> f") (with-ido-completion describe-function)) (global-set-key (kbd "<f1> v") (with-ido-completion describe-variable)) (global-set-key (kbd "<f2> i") (with-ido-completion info-lookup-symbol))
実行方法
$ wget http://rubikitch.com/f/150223080750.ido-occasional.el $ emacs -Q -f package-initialize -l 150223080750.ido-occasional.el
本サイト内の関連パッケージ
- helm - Helm is an Emacs incremental and narrowing framework
- ido-vertical-mode - Makes ido-mode display vertically.
- ido-ubiquitous - Use ido (nearly) everywhere.
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。