diredで anythingを使ってファイル・ディレクトリを絞り込む
diredでたくさんファイルがあるディレクトリを開いたとき
ファイル・ディレクトリを絞り込みたいということが結構あります。
原始的な方法だと検索するというのがあるかと思うのですが、
anythingを使ってというのが今時なのでそうしました。
sourceは anything-c-source-files-in-current-dir+を使ってます。
コード
;; anything in dired (defun my/anything-dired () (interactive) (let ((curbuf (current-buffer))) (if (anything-other-buffer '(anything-c-source-files-in-current-dir+) " *anything-dired*") (kill-buffer curbuf)))) (define-key dired-mode-map (kbd "p") 'my/anything-dired)
diredでの 'p'はデフォルトでは印刷に割当てられているのですが、
使わないので patternの pとしました。
kill-bufferしているのは、ディレクトリをたどったときに大量に
バッファを作らないようにするためです。自分で anything-sourceを
うまく書けばいいのかもしれないですが、既存のソースに良さそうな
ものがあったのでそれを使いました。
おわりに
Vimfilerの機能を見ていると、絞り込みに応じて diredバッファの表示も
変化していたので、できればそんな感じがいいかなと思うんですけど、
現状だと diredと anythingの組み合わせになるので、そこまではできて
いません。direxにそのような機能が実装されたらいいなぁと淡い期待を
寄せています。まあ dired自身でもいいんですけどね。