http://www.slideshare.net/k1LoW/anythingcsource
k1LoWさんのスライドを読んで勉強。
anythingの拡張の仕方は知りたかったのだけれども真面目にソースやドキュメントを読むのも面倒だったので、これは非常に助かった。
以下、自分なりのまとめ
1.基本形
(defun my-anything-func () "My anything func" (interactive) (anything (list anything-c-source-hogehoge anything-c-source-piyopiyo) ; 表示する情報源(ANY-SOURCES) initial-pattern ; 初期入力(ANY-INPUT) "prompt: " ; プロンプトに表示する文字列(ANY-PROMPT) nil ; anything()を実行する際に初期化するか(ANY-RESUME) ))
基本的にはこれのANY-SOURCESの部分を変えてやることで「このキーバインドはキルリング関連」とか「このキーバインドはファイル関連」とかいう風にいじれる。
情報源に関しては
http://www24.atwiki.jp/anything/pages/13.html
このへんを参考に。
initial-patternが何なのかよくわかんないけど僕の環境だと”定義されてません”って言われるし基本的には初期入力を与えたくないのでANY-INPUTはnilにしました。
2.情報源の定義の仕方
(defvar anything-c-source-tmp-dir ; 変数名はanything-c-source-で始めよう '((name . "Tmp dir") ; 情報源の名前 (candidates . (lambda () (directory-files "/tmp"))) ; 候補になる項目のリスト (type . file))) ; 候補の種類
意外と簡単に拡張できるのね! 素敵よ。エニシン。