cheat sheet for dired
Table of Contents
Last modified: 20250904T1143+0900
emacsの最強ファイラーdiredを使おう。
1. 削除
| d | 削除フラグを付ける |
| u | 削除フラグを消す |
| <DEL> | ポイントを前の行に移し、その行の削除フラグを消す |
| x | 削除フラグが付いたファイルを削除する |
1.1. よくあるエラー (osx)
- diredからファイルの削除ができないとき、まずはコマンドラインからだと削除できることを確認する。
delete-by-moving-to-trashをtにしているのにtrashがインストールされていない場合、wrong-type-argument: Wrong type argument: stringp, nilなどのメッセージが出てエラーとなる。対処法は、
delete-by-moving-to-trashをnilにするか、$ brew install trash
で
trashをインストールする。その際、EmacsWikiのSystem Trashのページなどを見て適切な設定をすると、システムの「ゴミ箱」、または~/.Trashなど指定したディレクトリに、削除ファイルが移動する。
2. ファイルの内容を表示する
| f | そのファイルの内容を表示する |
| <RET> | fと同じ |
| o | 別ウインドウを開いてファイルの内容を表示する |
| C-o | oと同じだがそのウインドウを選択しない |
| v | 変更不可でそのファイルの内容を表示する |
| W | ブラウザに問い合わせてそのファイルを外部プログラムで開く(Word, Excelなど) |
3. マーク
| m | *でマークする |
| * m | 同上 |
| * * | すべての実行ファイル |
| * @ | すべてのシンボリックリンク |
| * / | すべてのディレクトリ |
| * s | 現在のサブディレクトリ内のすべてのファイル |
| u | 現在行のマークを削除 |
| * u | 同上 |
| * ! | すべてのマークを削除 |
| U | 同上 |
| C-n | 次のマークされたファイルへ進む |
| M-{ | 同上 |
| C-p | 前のマークされたファイルへ戻る |
| M-} | 同上 |
| t | マークを逆転させる |
| * t | 同上 |
| % m regexp <RET> | regexpに一致する名前のファイル |
| * % regexp <RET> | 同上 |
| % g regexp <RET> | regexpに一致する内容のファイル |
4. ファイル操作
| C | copy |
| D | delete |
| R | rename (move) |
| H | Hard link |
| S | Symbolic link |
| M | chmod |
| + | create directory |
以下のように設定すると、コピー先や移動先が、別ウインドウで表示しているディレクトリになる。
(setq dired-dwin-target t)
5. ファイル名を得る
| w | マークされたファイル、またはカーソルがあるファイルのファイル名をkill-ringへ |
| C-u w | 同上。ただし、ファイル名の相対パス |
| 0 w | 同上。ただしファイル名のフルパス |
| C-u 0 w | 0 w と同じ |
6. シェル
| ! | マークしたファイルに対してシェルコマンドを実行 |
7. diredバッファの更新
| g | 全内容の更新 |
| l | マークしたファイルを更新 |
| k | マークしたファイルの行を隠す |
| s | アルファベット順と日付順を切り替える |
| C-u s | ソート順を指定する |
| ( | 簡易表示に切り替える (toggle) |
- 簡易表示をデフォルトにしたいときの設定
(use-package dired :hook (dired-mode . dired-hide-details-mode) )
ソート順を指定するには、
lsコマンドのオプションを指定する。たとえば、ファイルサイズが小さい順に表示するには以下のようにする。(alは必須なので、Srを追加する)$ ls -alSr
8. Wdired
| C-x C-q | (dired-toggle-read-only) | Wdiredモードに入る |
| C-c C-c | (wdired-finish-edit) | 変更を適用して通常のDiredモードに戻る |
バッファを直接編集してファイル操作を行う。 R よりも直観的。終了したら、 C-c C-c で反映させる。
9. 具体例
9.1. ファイル名に特定の文字列を含むファイルだけを表示する
% m string<RET>stringを検索してマークを付けるtマークを反転kマークされたファイルを消す
9.2. 矩形編集モードを使ってファイル名を一度に変更する
C-x C-qWdiredモードに入るC-x SPCカーソル位置をマークして矩形編集モードに入る- (たとえば)ファイル名の最初の5文字を矩形に選択する
- (たとえば)
C-w選択部分をカット C-c C-cまたはC-x C-sでファイル名を一度に変更してWdiredモードを抜ける
9.3. 〆切があるタスクに、作業するファイルへのリンクを添える
- org-agenda でタスクを作成。
- 作業するファイルがあるディレクトリへdiredで移動
- そのファイルの上で、
0 w - もとのorg-agendaファイルに戻り、タスクの下に以下の行を添えておくと、
C-x C-eで当該ファイルが開く
(shell-command "open (ここで C-y )")