dired-subtreeもシマシマにしたい
- 2015.03.01
- Emacs

diredのサブディレクトリがひどい
dired使いなら、 一度ならずもサブディレクトリの扱いに疑問を感じた方は多いのではないでしょうか。
GNU Emacsマニュアル: Subdirectories in Dired
dired-maybe-insert-subdir
などデフォルトでサブディレクトリを操作する関数もありますが、何せ表示されるのは、バッファの下の方で非常に見にくいです。階層構造がわかりにくいのもつらいし、ほとんど使ったことはありませんでした。
dired-subtreeは便利だけど
dired-subtree
はdired標準のサブディレクトリにあった不満を解消してくれる素敵拡張です。
いろいろと紹介もされていますので、詳しくはそちらを参照のこと。
Emacs – diredをより便利にするツール群 dired-hacks – Qiita
ところで、diredでは行の視認性を良くするために stripe-buffer
を使わせてもらってます。 stripe-buffer
については、以前紹介していますので、そちらを見てみてください。
DiredやOrg-modeのテーブルをシマシマにするstripe-bufferの紹介 – sheephead
この stripe-buffer
と dired-subtree
を併用すると、なんだか悲しい感じになってしまいます。
stripe-buffer
のシマシマが階層構造なぞお構いなしにシマシマにしてしまうので、階層がわかりにくくなってしまいます。
subtreeもシマシマにしてみる
せっかくなので、下の階層も階層構造に応じてシマシマにしたいですね。
というわけで、 stripe-buffer
に少し手を加えてみました。
myuhe/stripe-buffer at subtree_support
作者にぷるりくも出しているので、もしかしたら、取りこんでもらえるかもしれません。
このブランチを使って、faceを良い塩梅にするとこんな感じになります。
faceの設定はこんな感じです。
(with-eval-after-load 'dired-subtree (set-face-attribute 'dired-subtree-depth-1-face nil :background "#B4C342") (set-face-attribute 'dired-subtree-depth-2-face nil :background "#F2804F") (set-face-attribute 'dired-subtree-depth-3-face nil :background "#9EA0E5") (set-face-attribute 'dired-subtree-depth-4-face nil :background "#DEB542") (set-face-attribute 'dired-subtree-depth-5-face nil :background "#657b83") (set-face-attribute 'dired-subtree-depth-6-face nil :background "#657b83")) (with-eval-after-load 'stripe-buffer (set-face-attribute 'stripe-dired-subtree-depth-1-face nil :background "#cbd57c") (set-face-attribute 'stripe-dired-subtree-depth-2-face nil :background "#f7b396") (set-face-attribute 'stripe-dired-subtree-depth-3-face nil :background "#dadbf5") (set-face-attribute 'stripe-dired-subtree-depth-4-face nil :background "#e9cf83") (set-face-attribute 'stripe-dired-subtree-depth-5-face nil :background "#657b83") (set-face-attribute 'stripe-dired-subtree-depth-6-face nil :background "#657b83"))
stripe-buffer
と dired-subtree
を併用している人しかおいしくないニッチなハックでしたが、悩めるdirederのdiredバッファがカラフルなシマシマになれば幸いです。
-
前の記事
Emacs Lisp 開発者にドキュメントの書き方を丁寧に教えてくれる checkdoc-minor-mode を有効にした 2015.02.22
-
次の記事
Org-mode上のカーソルの位置でキーバインドをDWIMに変えてくれる org-multiple-keymap.elを作りました 2015.03.15