UP | HOME

cheat sheet for dired

Table of Contents

Last modified: 20240802T1529+0900


emacsの最強ファイラーdiredを使おう。

1. 削除

d 削除フラグを付ける
u 削除フラグを消す
<DEL> ポイントを前の行に移し、その行の削除フラグを消す
x 削除フラグが付いたファイルを削除する

1.1. よくあるエラー (osx)

  • diredからファイルの削除ができないとき、まずはコマンドラインからだと削除できることを確認する。
  • delete-by-moving-to-trasht にしているのに trash がインストールされていない場合、 wrong-type-argument: Wrong type argument: stringp, nil などのメッセージが出てエラーとなる。
  • 対処法は、 delete-by-moving-to-trashnil にするか、

    $ 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 アルファベット順と日付順を切り替える
( 簡易表示に切り替える (toggle)
  • 簡易表示をデフォルトにしたいときの設定
(use-package dired
:hook
(dired-mode . dired-hide-details-mode)
)

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. ファイル名に特定の文字列を含むファイルだけを表示する

  1. % m string<RET> stringを検索してマークを付ける
  2. t マークを反転
  3. k マークされたファイルを消す

9.2. 矩形編集モードを使ってファイル名を一度に変更する

  1. C-x C-q Wdiredモードに入る
  2. C-x SPC カーソル位置をマークして矩形編集モードに入る
  3. (たとえば)ファイル名の最初の5文字を矩形に選択する
  4. (たとえば) C-w 選択部分をカット
  5. C-c C-c または C-x C-s でファイル名を一度に変更してWdiredモードを抜ける

9.3. 〆切があるタスクに、作業するファイルへのリンクを添える

  1. org-agenda でタスクを作成。
  2. 作業するファイルがあるディレクトリへdiredで移動
  3. そのファイルの上で、 0 w
  4. もとのorg-agendaファイルに戻り、タスクの下に以下の行を添えておくと、 C-x C-e で当該ファイルが開く
(shell-command "open (ここで C-y )")

Date: 2022-11-09 Wed 15:30

Author: Yoshinori Ueeda

Created: 2024-08-02 Fri 15:29

Validate