flx-ido 20151030.1112(in MELPA)
flx integration for ido

概要

flx-ido.el は、 flx.el というあいまいマッチライブラリを使って、
idoのあいまいマッチを改善します。

  1. あいまいマッチが必ず実行される
  2. マッチした部分に色がつく

たとえば、

("chops" "scone" "close" "confide")

の4要素のリストをidoでマッチさせる例を考えましょう。

標準のあいまいマッチを有効化(ido-enable-flex-matching = t)した状態で
「co」と入力すると、"scone"と"confide"しかマッチしません。

なぜなら、両者はcoを含むのであいまいマッチは無効になります。

20150129065125.png
Fig1: 標準では部分文字列マッチが優先される

部分文字列マッチがあいまいマッチよりも優先されたからです。

一方で「coe」と入力すると、あいまいマッチが有効になり
"scone"、"confide"、"close"にマッチします。

20150129065130.png
Fig2: ここで初めてあいまいマッチが有効になる

そこで、flx-ido.elでは常にあいまいマッチが行われるようにさせます。

20150129065321.png
Fig3: flx-ido-modeなら常にあいまいマッチが使える

ただし、M-xをido化させる smex.el(レビュー) に対しては、
やや動作が重くなります。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

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

M-x package-install flx-ido

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

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

設定 150129065419.flx-ido.el(以下のコードと同一)

(setq ido-max-window-height 0.75)
(ido-vertical-mode 1)
(setq ido-vertical-define-keys 'C-n-and-C-p-only)
(require 'flx-ido)
(ido-mode 1)
(ido-everywhere 1)
(flx-ido-mode 1)
;; disable ido faces to see flx highlights.
(setq ido-enable-flex-matching t)
(setq ido-use-faces nil)

実行方法

$ wget http://rubikitch.com/f/150129065419.flx-ido.el
$ emacs -Q -f package-initialize -l 150129065419.flx-ido.el

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


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