"はじめてのanything-c-source-*"を読む

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))) ; 候補の種類


意外と簡単に拡張できるのね! 素敵よ。エニシン。