Hatena::ブログ(Diary)

日々、とんは語る。

この日記のはてなブックマーク数 はてなスターカウンター Peace この日記をあなたのはてなアンテナに追加する。 rss
お問い合わせ先 mailto

2009-04-24 落ちついた日。

Anything の設定ことはじめ。

| 20:19 |

鉄は熱いうちに打て、ということで、続けて 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-delayanything-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: カーソル位置のワードからファイル検索

<< 2009/04 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30