Emacs

diredをより便利にするツール群 dired-hacks

More than 3 years have passed since last update.


はじめに

dired-hacksというツール群がある.

https://github.com/Fuco1/dired-hacks

diredの機能を強化し,より便利にするelisp群というわけである.

詳細は上記ページのREADMEやソースを読み、自分で試せばすぐに分かるわけだが,

以下,備忘録を兼ねてメモを残しておく.

私自身全てを試したわけでもないが,使って便利だ・おもしろいと感じたものを紹介する.

ちなみにソースの一部はMELPAからインストール可能な状態である.


紹介


dired-filter.el

diredバッファをフィルタリングする.

以下のようにキーバインドが用意されている (dired-filter-map参照).

キーバインド
説明

/ n
名前でフィルタリング (dired-filter-by-name)

/ r
正規表現でフィルタリング (dired-filter-by-regexp)

/ .
拡張子でフィルタリング (dired-filter-by-extension)

/ h
ドットで始まるファイルを隠す (dired-filter-by-dot-files)

/ o

dired-omit-modeによるフィルタリング (dired-filter-by-omit)

/ e
説明がめんどくさいので割愛 (dired-filter-by-predicate)

/ f
ファイルだけ表示 (dired-filter-by-file)

/ d
ディレクトリだけ表示 (dired-filter-by-directory)

/ m
メジャーモードでフィルタリング (dired-filter-by-mode)

上記以外にもキーバインドが用意されている(マーク用など).

フィルタリングの結果はスタックされる.

例えば,ファイル名でフィルタをかけた後、さらにメジャーモードでフィルタをかける、といった具合である.

スタック構造を持っているので、ポップすることでフィルタリング結果を戻すことも可能である.

またフィルタリングの結果は保存することができる.


dired-narrow.el

diredバッファにおいて,インクリメンタルにナローイングを実行する.

正規表現を用いてナローイングする機能もある.

絞り込んだ後はマークするなり中身を開くなりと,利用価値は高い.


dired-subtree.el

diredバッファ上でサブディレクトリを展開する機能を提供.

とにかくdemoを見れば意味がはっきりするだろう.

https://www.youtube.com/watch?v=z26b8HKFsNE

diredデフォルトではiを押すことでサブディレクトリを展開するが,

別ディレクトリとしてdiredバッファの下側に中身が表示される.


dired-ranger.el

dired上で「クリップボード」を介してコピーや移動を実行する.

「複数の」diredバッファ上でマークしたファイルをクリップボードにストアし,

それをtargetのdiredバッファ上でペーストするのが基本である.

(クリップボードがスタックのような構造になっているのがミソ)

すでにtargetのdiredバッファを開いているならバッファ切り替えでいいわけであり,

diredデフォルトのコピー機能の中でtargetディレクトリへのパスをいちいち選択するよりも速い.

dired-dwim-targetの利用で十分こと足りる人もいるだろうが,これはさらにそれを強化している.


dired-open.el

dired上で各種ファイルを開く際,拡張子に応じて開くためのプログラムを「いい感じに」調整してくれる.

カスタマイズ次第でさらに化けるだろう.


おわりに

本稿ではdired-hacks内の一部を紹介した.

今後の関連ツールの発展と共に,diredの価値はさらに高まるだろう.

diredは大変便利なので是非多くの人が利用することを期待する.