Anything の設定ことはじめ。

鉄は熱いうちに打て、ということで、続けて Anything について書きます。
前の記事で anything-sources にソースを入れると anything がより便利になると書きました。で、ソースについての紹介リンクを並べましたが、結局のところ、自分で使ってみないとそのソースが自分にとって必要なのかどうか判断出来ません。
ぶっちゃけ、一度は全てのソースを試してみておきたいところですが、その度に anything-sources を書き換えるのは面倒です。
そこで、anything-config に用意されている Preconfigured Anything、設定済みの Anything を使ってみましょう。

標準ソース以外の Anything コマンド。

(require 'anything)
(require 'anything-config)

上記の設定は済ませていると思いますが、この状態で既に使えるコマンドがいっぱいあります。
例えば、

anything-for-files
ファイル表示のに特化した Anything。ffap*1 -> recentf -> buffer -> bookmark -> file-cache -> files-in-current-dir -> locate の順番に候補を表示する。
anything-info-at-point
カーソル位置にあるワードを絞り込んだ上で、Elips, Common Lisp, その他 Emacs の Info ドキュメントの候補を表示する。
anything-show-kill-ring
今までに kill した文字の履歴を表示。リターンで挿入。
anything-minibuffer-history
ミニバッファに入力した履歴を表示。リターンで挿入。
anything-kill-buffers
Emacs 上で開いているバッファのリストを表示。リターンでバッファを閉じる。
anything-apropos
apropos という Emacs のドキュメント検索を Anything で行なう。

などがあります。
これらの関数がどのように定義されているのかというと、

(defun anything-for-files ()
  "Preconfigured `anything' for opening files.
ffap -> recentf -> buffer -> bookmark -> file-cache -> files-in-current-dir -> locate"
  (interactive)
  (anything '(anything-c-source-ffap-line
              anything-c-source-ffap-guesser
              anything-c-source-recentf
              anything-c-source-buffers+
              anything-c-source-bookmarks
              anything-c-source-file-cache
              anything-c-source-files-in-current-dir+
              anything-c-source-locate)))

(defun anything-info-at-point ()
  "Preconfigured `anything' for searching info at point."
  (interactive)
  (anything '(anything-c-source-info-elisp
              anything-c-source-info-cl
              anything-c-source-info-pages)
            (thing-at-point 'symbol)))

こんな感じです。
つまり、anything という標準のコマンドの関数は、デフォルト、もしくは自分で設定したソースを使うのですが、第一引数にソースのリストを与えてあげると、標準とは違うソースの Anything コマンドを作る事ができるというわけです。
なので、ファイル検索に特化した Anything、タグ検索に特化した Anything、ドキュメント検索に特化した Anything などを用意する事で、より柔軟な Anything を楽しめます。ってか、Anything って凄いですね。
自分の Anything コマンドを作って便利だったら、

(define-key global-map (kbd "C-x a f") 'anything-for-files)

みたいな感じで、キーバイドを登録しておきましょう。

ちょっとした設定

(setq anything-idle-delay 0.3)	; 候補を作って描写するまでのタイムラグ。デフォルトで 0.3
(setq anything-input-idle-delay 0.2) ; 文字列を入力してから検索するまでのタイムラグ。デフォルトで 0
(setq anything-candidate-number-limit 100) ; 表示する最大候補数。デフォルトで 50

候補やソースが多くて、Anything の動作が重いときは、anything-idle-delay と anything-input-idle-delay の値を増やすとサクサクになります。
C-x C-e で評価して、設定を反映させてから Anything を起動して自分の満足する設定にしましょう
RubikitchAnythingConfiguration の様に、

(setq anything-idle-delay 0.3)
(setq anything-input-idle-delay 0)
(setq anything-candidate-number-limit 100)

(defun anything-default ()
  (interactive)
  (let ((anything-input-idle-delay 0.2)
        (anything-idle-delay 0.7)
        (anything-quick-update t)
        (anything-sources
         (append
          '( ;;prior
             anything-c-source-mew-auto-refile-summary
             anything-c-source-rdefs-from-rdefs-buffer
             anything-c-source-emacs-variable-at-point
             anything-c-source-emacs-function-at-point
             ;;中略
             anything-c-source-file-name-history
             anything-c-source-anything-grep-fallback
             anything-c-source-anything-google-fallback
             ))))
    (call-interactively anything-function)))

特定の Anything コマンドだけ設定する方法もある。

*1:file find at point: カーソル位置のワードからファイル検索