Idoの使い方

(require 'ido)
(ido-mode t)
(ido-everywhere t)
C-x C-f バッファ検索バッファを開く
C-x C-f RET 選択したバッファを開く
C-x C-f C-k 選択したバッファを削除する
C-x C-f C-f バッファ検索をやめて、ファイルの検索に変更する
  • 最後のやつは、バッファ検索 → あ、なかった → じゃ、ファイル名検索、という流れで C-g する必要がなくなるので、知っておくと便利かも

追加パッケージ

  • Idoの強化パッケージ
  • すべて MELPA からインストールできる
;;; ----- ~/.emacs.d/modules/prelude-ido.el -----
(require 'ido-ubiquitous)
(ido-ubiquitous-mode +1)
  • Org, Magit, Gnusは自前のIdo補完があるので、以下の追加設定が必要とマニュアルに書いてある(僕はやってない)
(setq org-completion-use-ido t)    ;; Org Mode
(setq magit-completing-read-function 'magit-ido-completing-read)  ;; Magit
(setq gnus-completing-read-function 'gnus-ido-completing-read)    ;; Gnus
  • 横並びの選択候補を、縦並びにするパッケージ
  • すごく選択しやすくなるのでおすすめ
  • デフォルトは C-s/C-r が候補選択だが、見た目とずれてて使いづらいので C-n/C-p に変更するとよい
(use-package ido-vertical-mode
  :config
  (ido-vertical-mode 1)
  (setq ido-vertical-define-keys 'C-n-and-C-p-only)    ;; C-n/C-pで候補選択する
  (setq ido-vertical-show-count t)
  )
  • 作者のブログを読むと ido-migemo-mode (というマイナーモード)をONにすると、idoの曖昧検索ができなくなる
  • なので ido-migemo-exclude-command-list で、ido-migemo-mode をONにしない関数を登録できる
  • smex はデフォルトで除外コマンドになっている
  • switch-to-bufferのようなバッファ切り替えコマンド、ido-describe-bindingsのような検索コマンドのように、曖昧さ検索できないと旨味がないコマンドはじゃんじゃん登録する
  • ただし、ブログにあるサンプルは ido-migemo-exclude-command となっていて、間違ってるので注意
  • 本文中には ido-migemo-exlude-command-list とあるのに、サンプルではなくなっていた。なかなか気づかずはまった。
  • ido-migemo-prompt-string は ido-migemo-mode であることが分かるようにしてある
(use-package ido-migemo
  :ensure t
  :config
  (setq ido-migemo-exclude-command-list '(smex swith-to-buffer ido-switch-buffer persp-switch ido-describe-bindings))
  (setq ido-migemo-prompt-string "=[ido-migemo]=")
  (ido-mode 1)
  (ido-migemo-mode 1)
  )
  • ウィンドウ切り替えの候補を Ido を使って選択できるようにするパッケージ
  • 「C-x o (other-window)」を ido-select-window に置き換えるとよい
(use-package ido-select-window
  :ensure t
  :bind ("C-x o" . ido-select-window)
  )