direx.elの設定

https://github.com/m2ym/direx-el


m2ymさんプロダクトの direx.elというイカした diredチックな
ツールがあります。機能補充のための pull request(chmod, Elispの load,
byte-compile)だけして使っていなかったんですが、そろそろ使おうと
いうことで設定してみました。


キーバインドは dired-jumpと同じ "C-x C-j"です。
個人的にまだ完全に diredを置き換えられないので、C-u prefixを
つけると dired-jumpを起動するようにしています。あとフレームを
分割しているときに、一番左に popupされるとどのバッファに対して
ディレクトリ操作を行ったかがわかりづらくなってしまったので、
分割しているときは、other-windowでなく、同じ windowで表示するようにしています。


あと direx-project版を優先して実行し、失敗した場合は通常版を
使用するようにしています。

;; direx
(require 'direx)
(require 'direx-project)

(defun my/dired-jump ()
  (interactive)
  (cond (current-prefix-arg
         (dired-jump))
        ((not (one-window-p))
         (or (ignore-errors
               (direx-project:jump-to-project-root) t)
             (direx:jump-to-directory)))
        (t
         (or (ignore-errors
               (direx-project:jump-to-project-root-other-window) t)
             (direx:jump-to-directory-other-window)))))

(global-set-key (kbd "C-x C-j") 'my/dired-jump)

;; widthは環境に合わせて調整してください。
(push '(direx:direx-mode :position left :width 40 :dedicated t)
      popwin:special-display-config)

まだ使い慣れていないですが、これで慣れていこうかと思います。

イメージ

いい感じですね。