ido-ubiquitous 20170718.1033(in MELPA)
Use ido (nearly) everywhere.

概要

ido-ubiquitous.el は、その名の通りすべての補完を ido 化します。

idoは標準添付パッケージで部分文字列・あいまいマッチによる
強力なバッファ・ファイル選択を提供します。

これをM-xに対応させたのがsmex.el(レビュー) です。

そして、このido-ubiquitous.elはその他の補完をido化します。

idoファンにはぜひともおすすめです。

今の補完のトレンドは helm だと思いますが、

  • 単一情報源
  • 単一アクション
  • Migemo不要

の条件下ではidoの方が優れていると思います。

なぜなら、idoのあいまいマッチは、各文字の間に「.*」を挿入した
正規表現で検索されるため、とても少ない打鍵数で選択できるからです。

helmの helm-match-plugin はスペースが必要ですが、idoでは不要です。

特に bookmark などで威力を発揮します。

idoが好きならばぜひともido-vertical-mode(レビュー) もおすすめです。

本設定では有効にしています。

skkを使っている人はミニバッファ内ではC-jで使えますが、
idoでは喰われてしまっています。

よって強引にC-jを取り返しています。

20150110073904.png
Fig1: C-x r b(ブックマーク)でido選択!

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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-ubiquitousを使う方は
以下のコマンドを実行します。

M-x package-install ido-ubiquitous

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

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

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

(ido-mode 1)
;;; あいまいマッチ:これを入れないとidoの魅力がガタ落ち
(setq ido-enable-flex-matching t)
;;; 縦に並べる(お好みで)
(when (fboundp 'ido-vertical-mode)
  (ido-vertical-mode 1))
;;; completing-readをido化
(ido-ubiquitous-mode 1)
;;; M-xをido化
(when (fboundp 'smex)
  (global-set-key (kbd "M-x") 'smex))
;;; skk使いはC-jをskk-modeにする
(when (fboundp 'skk-mode)
  (fset 'ido-select-text 'skk-mode))
;;; 使用例
(defun test ()
  (interactive)
  (message
   (completing-read "Test: " '("foo" "bar" "baz") nil t)))
(defun test2 ()
  (interactive)
  (message
   (completing-read "Test: " '("foo" "bar" "baz") )))

実行方法

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

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


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