お待たせしました。メンテナになって初のanything.elをリリースします。オリジナル版を使いやすくするために超強化しました。

[2008/08/26]例を追記しました。

- 初期状態の入力を指定できる - プロンプトを「pattern: 」以外に指定できる - 最初に選択する候補を指定できる

候補を完全一致→先頭一致→スペースで区切られた 正規表現 すべて満たすものの順に表示する プラグイン はこちら。

ユーザー視点の新機能

個人的に不満に思っていたところを改善しました。

anything-sourcesがシンボルのリストを取れるようになった anything情報源はanything-c-source-*の形の変数に代入するのが慣例となっています。今までは ( setq anything-sources ( list anything-c-source-buffers anything-c-source-recentf )) ) のように巨大リストを構成していましたが、次のようにシンボルのリストも取れるようになりました。 ( setq anything-sources '( anything-c-source-buffers anything-c-source-recentf )) こうすることでdescribe-variableしたときにどの情報源がセットされているのかが一目でわかります。おまけに、anything-c-source-*の定義を変更してもanything-sourcesを更新する必要がありません。

anything-input-idle-delayでdelayedではない情報源も遅延させる 今までは重い処理をする情報源には(delayed)をつけることで処理を遅延させてきました。しかし、軽い処理でもanything-sourcesの長さが増えていくにつれて処理が重くなってしまいます。塵も積もれば山となる、というわけで、(delayed)ではない情報源についても遅延時間を設定できるようになりました。

僕は0.2秒に設定しています。キーボード打鍵間より少し長く、なおかつもっさり感がありません。 anything-input-idle-delay秒間入力がないときに*anything*バッファを更新します。さらに (anything-idle-delay - anything-input-idle-delay) 秒後に(delayed)な情報源を処理します。

anything-resume アクション実行後に*anything*バッファが閉じられますが、再び同じ候補を表示させるには再度パターンを入力しなければなりませんでした。そこでM-x anything-resumeを実行することで直前の*anything*バッファを復元させることができます。 anything-c-moccurで他のマッチ箇所に移動するときに重宝しています。

デフォルト以外のアクションを選択する 候補を選択すると、デフォルトの（action属性の最初のもの）アクションが実行されます。他のアクションを実行する場合はTabでアクションを選択する必要があります。しかし、実行するアクションがわかりきっている場合は面倒です。そこで、候補選択のところからデフォルトの以外のアクションを実行できるようにしました。

M-x anything-select-2nd-actionで2番目のアクション（(nth 1 action)なるアクション）を実行します。同様に anything-select-3rd-action、anything-select-4th-action、 anything-select-nth-action もあります。

anything-mapの空いたキーに割り当てると便利です。 たとえば、行末でC-eを押したときに2番目のアクションを実行するにはこんなコマンドを作成します。行末のC-eは意味がないのでそこを利用したものです。 ( defun anything-select-2nd-action-or-end-of-line () ( interactive ) ( if ( eolp ) ( anything-select-nth-action 1 ) ( end-of-line )))