Emacsをファイラとして使えるようになるdiredですが、便利な割に意外と使われていないようなので簡単に使い方をまとめました。
基本操作
diredバッファを開く
| キーバインド | 説明 |
|------------------------+-----------------------------------------|
| C-x d
| 任意のディレクトリをdiredバッファで開く |
普通にfind-file
でディレトリを指定しても開けます。
基本操作
| キーバインド | 説明 |
|--------------+--------------------------------------------------------------|
| n
| カーソルを1行下に移動 |
| p
| カーソルを1行上に移動 |
| RET
, f
| ファイルを開く |
| o
| ファイルを別ウィンドウで開く |
| v
| ファイルをview-modeで開く |
| m
| ファイルをマークする |
| u
| カーソル位置のマークを解除する |
| U
| すべてのマークを解除する |
| C
| マークされたファイルをコピーする |
| D
| マークされたファイルを削除する |
| R
| マークされたファイルを移動する |
| +
| ディレクトリを作成する |
| q
| diredバッファを閉じる |
| X
| カーソル位置のファイルに対して任意のシェルコマンドを実行する |
おすすめの設定
;; diredを2つのウィンドウで開いている時に、デフォルトの移動orコピー先をもう一方のdiredで開いているディレクトリにする
(setq dired-dwim-target t)
;; ディレクトリを再帰的にコピーする
(setq dired-recursive-copies 'always)
;; diredバッファでC-sした時にファイル名だけにマッチするように
(setq dired-isearch-filenames t)
dired-dwim-target
は便利なので特に理由がない限りt
を指定すると良いと思います。
覚えておくと便利な操作
ファイル名で操作対象を絞る
正規表現にマッチする名前のファイルをマークしたり、findの結果からdiredバッファを表示できます。
-
% m
正規表現にマッチする名前のファイルをマーク -
t
マークを反転させる -
M-x find-name-dired
ワイルドカードによるファイルの検索結果をdiredバッファに表示
画像表示
画像ファイルをマークした状態でC-t C-t
を押下することで、diredバッファ内に画像のサムネイルを表示させることができます。
サーバ上のディレクトリをdiredで開く
TRAMPのおかげで、SSHで接続したサーバ上のディレクトリもローカルのディレクトリと同様に扱うことができます。
ファイルを開く時に、/ssh:<username>@<hostname>:<directory>
を指定するだけです。
最近Software Design誌のEmacs特集を読んで、multi-hopの設定をすることで多段SSHもできることを知りました。さらにsshだけでなくsftpやsmbも使えるそうなので、大抵のファイル転送はEmacsだけで対応できそうです。
圧縮ファイルの操作
diredバッファでは、Z
キーで各種圧縮ファイルを展開することできます。ファイルの拡張子ごとに展開にどのプログラムを使用するかが変数dired-compress-file-suffixes
に定義されているのですが、よく使うであろうzip形式の定義がないので以下の記述で追記すると良いでしょう。
;; .zipで終わるファイルをZキーで展開できるように
(add-to-list 'dired-compress-file-suffixes '("\\.zip\\'" ".zip" "unzip"))
diredバッファでマークしたファイルをzip形式で圧縮するコマンドが以下のURLに記載されているので、併せてそちらもinit.elに追加しておくと便利だと思います。
http://stackoverflow.com/questions/1431351/how-do-i-uncompress-unzip-within-emacs