phi-search-dired 20150405.14(in MELPA)
interactive filtering for dired powered by phi-search

概要

phi-search-dired.eldired において
ファイル名で絞り込み機能 を提供します。

名前の通りphi-search.el(レビュー) という
独自の 正規表現isearch がベースとなっていて、
isearchでファイル名を絞り込み、
マッチしたファイルのみを表示・マークします。

本設定では標準のisearchを置き換えるためC-sに割り当てています。

使い方は、C-sで絞り込みたいファイル名の正規表現を入力します。

ここで3通りの操作方法があります。

SPCを押すとマッチしたファイルのみ表示するようになり、
RETを押すとマッチしたファイルをマークし、
C-gを押すとそのままの表示のまま抜けます。

SPCの後にさらに正規表現を入力できるので、
helmのようにガンガン絞り込めます。

SPCを押すと他のファイル名が表示されなくなりますが、
C-/ (dired-undo) で元に戻せるので安心してください。

dired標準コマンドの % m または * % (dired-mark-files-regexp) を
強化したものともいえます。

なお、 dired-filter.el(レビュー) では正規表現だけでなく
ディレクトリのみを表示したりもできます。

20150405092007.png
Fig1: 元の状態

20150405092015.png
Fig2: C-s anything (5つマッチしていることがわかる)

20150405092025.png
Fig3: ここでSPCを押すとanythingが含まれるエントリだけを表示

20150405092035.png
Fig4: ここでC-gを押すとFig3に戻り、さらにクエリを入力して絞り込み

20150405092038.png
Fig5: RETでそのエントリがマークされる

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてphi-search-diredを使う方は
以下のコマンドを実行します。

M-x package-install phi-search-dired

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name phi-search-dired

設定 150405085104.phi-search-dired.el(以下のコードと同一)

(require 'dired)
(define-key dired-mode-map (kbd "C-s") 'phi-search-dired)
;;; 表示を整えるアドバイス
(defun phi-search-dired-restrict-to-matches--show-all ()
  (with-selected-window (minibuffer-selected-window)
    (when (re-search-backward " \\.\\./?$" nil t)
      (forward-line 1)
      (recenter nil))))
(advice-add 'phi-search-dired-restrict-to-matches :after
            'phi-search-dired-restrict-to-matches--show-all)

実行方法

$ wget http://rubikitch.com/f/150405085104.phi-search-dired.el
$ emacs -Q -f package-initialize -l 150405085104.phi-search-dired.el

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。