ivy 20170806.1231(in MELPA)
Incremental Vertical completYon

概要

Emacsでの 候補選択helmido がメジャーだと思いますが、
またまた新しい実装が出てきました。

バッファ・ファイル選択のインターフェースとしても
lusty-explorer.el(レビュー) もありますし、
Emacs愛好家はオレオレインターフェースを作りたがるものです。

ivy.el はhelmやido-vertical-mode.el(レビュー) のように
縦方向の候補を並べ、絞り込み検索により候補選択をします。

使い方は非常に自然でhelmやido-vertical-modeとほぼ変わりません。

3/10に誕生したばかりのまったく新しいelispで、
現時点では荒削りな印象は拭えません。

スペースで絞り込み検索ができるといっても、
単にスペースに「.*」をくっつけた正規表現を作成するだけです。

「foo bar」は「foo.*bar」になるので「foo x bar」にはマッチしますが、
「bar x foo」にはマッチしません。

idoのあいまいマッチでは「foobar」とスペース抜きでも
「foo x bar」にマッチします。

helmならば真の絞り込み検索なので双方にマッチします。

今後の開発により、どのように進化するのかが楽しみであります。

ivyを使ったアプリケーションとして、
一覧付き正規表現isearchのswiper.el(レビュー) があります。

20150315085637.png
Fig1: ivy-readの初期画面

20150315085644.png
Fig2: ivy-readでの絞り込み

20150315085806.png
Fig3: ido-vertical-modeの初期画面

20150315085810.png
Fig4: 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/")))

初めてivyを使う方は
以下のコマンドを実行します。

M-x package-install ivy

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name ivy

設定 150315083615.ivy.el(以下のコードと同一)

(require 'ivy)
;;; 使用例
;; (ivy-read "ivy test: " '("for example" "test" "helm" "ivy"))
;; (ido-completing-read "ivy test: " '("for example" "test" "helm" "ivy"))
;; (ivy-read "ivy test: " (directory-files "/"))
;; (ido-completing-read "ivy test: " (directory-files "/"))

実行方法

$ wget http://rubikitch.com/f/150315083615.ivy.el
$ emacs -Q -f package-initialize -l 150315083615.ivy.el

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。