ファイルを ‘D’ でフラグ立てする代わりに、別の文字(通常は ‘*’)でファイルをマークすることもできます。ファイルを操作するDiredコマンドの多くは、‘*’ でマークされたファイルを対象とします。フラグ立てされたファイルを操作する唯一のコマンドは x で、これはそれらを削除します。
以下に、‘*’によるマーク、マークの解除、およびマーク操作のためのコマンドをいくつか紹介します。(ファイルへのフラグ付けおよび解除のコマンドについては、Diredによるファイルの削除を参照してください。)
現在のファイルを ‘*’ (dired-mark)
でマークします。リージョンが有効な場合は、代わりにリージョン内のすべてのファイルをマークします。そうでない場合、数値引数 n が指定されていれば、現在のファイルを起点として次の n
個のファイルをマークします(n が負の値の場合は、直前の −n 個のファイルをマークします)。サブディレクトリのヘッダー行で実行した場合(Dired のサブディレクトリ
を参照)、このコマンドはそのサブディレクトリ内のすべてのファイルをマークします。
マークされたファイルの数とサイズを報告してください (dired-number-of-marked-files)。
すべての実行可能ファイルに ‘*’ (dired-mark-executables)
をマークします。数値引数を指定すると、それらすべてのファイルのマークを解除します。
すべてのシンボリックリンクに ‘*’ (dired-mark-symlinks)
をマークします。数値引数を指定すると、それらすべてのファイルのマークを解除します。
. と .. (dired-mark-directories) を除くディレクトリであるすべてのファイルに
‘*’
をマークします。数値引数を指定すると、それらすべてのファイルのマークを解除します。
現在のサブディレクトリにあるファイルのうち、. と .. (dired-mark-subdir-files)
を除くすべてにマークを付けてください。
この行 (dired-unmark)
にあるマークをすべて解除します。領域が有効な場合は、代わりにその領域内のすべてのファイルのマークを解除します。そうでない場合、数値引数 n が指定されていれば、現在のファイルを起点として次の n
個のファイルのマークを解除します(n が負の値の場合は、直前の −n 個のファイルのマークを解除します)。
ポイントを前の行に移動し、その行にあるマークを削除します (dired-unmark-backward)。リージョンがアクティブな場合は、代わりにリージョン内のすべてのファイルのマークを解除します。そうでない場合、数値引数
n が指定されていれば、代わりに現在のファイルから順に、直前の n 個のファイルのマークを解除します(n が負の値の場合は、次の
−n 個のファイルのマークを解除します)。
このDiredバッファ内のすべてのファイルからすべてのマークを削除します (dired-unmark-all-marks)。
文字 markchar (dired-unmark-all-files) を使用するすべてのマークを削除します。M-DEL を指定して実行した場合、コマンドは markchar の入力を求めます。その markchar
は単一の文字です—終了させるために RET
を使用しないでください。あるマーク文字を別の文字に置き換えることができる、後述の * c
コマンドの説明を参照してください。
数値引数を指定すると、このコマンドはマークされた各ファイルについて、そのマークを削除するかどうかを問い合わせます。「はい」の場合は y、「いいえ」の場合は n、残りのファイルについては問い合わせずにマークを削除する場合は ! と回答できます。
次のマーク付きファイル (dired-next-marked-file)
へ移動します。何らかのマークが付いているファイルを「マーク付き」と呼びます。
直前のマーク済みファイル (dired-prev-marked-file) に移動します。
すべてのマークを切り替える (dired-toggle-marks): ‘*’ でマークされたファイルはマーク解除され、マークされていないファイルは ‘*’ でマークされます。それ以外の方法でマークされたファイルには影響しません。
文字 old-markchar を使用するすべてのマークを、文字 new-markchar (dired-change-marks) を使用するマークに置き換えます。このコマンドは、‘*’ や ‘D’
以外のマークを作成または使用するための主要な方法です。引数は単一の文字とします。—終了に RET を使用しないでください。
このコマンドを使えば、ほぼあらゆる文字をマーク文字として使用し、さまざまな種類のファイルを区別できます。old-markchar がスペース(‘ ’)の場合、このコマンドはすべての未マークのファイルに対して動作します。new-markchar がスペースの場合、このコマンドは対象のファイルのマークを解除します。
このコマンドの威力を示すため、マークのないすべてのファイルに ‘D’ フラグを付与し、一方で既に ‘D’ フラグが付いているファイルのフラグを解除する方法を以下に示します。
* c D t * c SPC D * c t SPC
これは、すでに ‘t’ が付与されたファイルが存在しないことを前提としています。
マーク (‘*’) は、ファイル名が正規表現 regexp (dired-mark-files-regexp)
に一致するすべてのファイルに付与します。このコマンドは % d と同様ですが、‘D’ でフラグを立てる代わりに、‘*’ でファイルにマークを付けます。
ファイル名のうち、ディレクトリ部分以外のみがマッチングに使用されます。マッチを固定するには ‘^’ および ‘$’ を使用してください。サブディレクトリを一時的に非表示にすることで、除外できます(サブディレクトリの非表示を参照)。
Mark (‘*’) は、内容に正規表現 regexp (dired-mark-files-containing-regexp)
に一致する箇所が含まれるすべてのファイルをマークします。このコマンドは % m
と同様ですが、ファイル名ではなくファイルの内容を検索する点が異なります。なお、ファイルが Emacs バッファで参照されており、dired-always-read-filesystem が nil (デフォルト)
である場合、このコマンドはファイルを再参照せずにバッファ内を検索するため、前回の参照以降に内容が変更されていた場合、結果がディスク上のファイルと一致しない可能性があります。これを避けたい場合は、このコマンドを実行する前に、バッファで参照していたファイルをリバートするか、それらのバッファで
Auto-Revert モードを有効にしてください。バッファのリバート を参照してください。ファイルのリバートや Auto-Revert
モードの有効化を必要とせず、常にファイルを再参照させたい場合は、dired-always-read-filesystem を non-nil に設定してください。
Diredバッファにおけるマークの追加や削除などの変更を取り消します (dired-undo)。このコマンドは実際のファイル操作を元に戻したり、失われたファイルを復元したりするものではありません!
単にバッファ自体の変更を取り消すだけです。undoと同様に、数値の接頭辞引数で繰り返し回数を指定します。
場合によっては、ファイルを操作するコマンドの後にこれを使用すると問題が発生することがあります。例えば、1つ以上のファイル名を変更した後、dired-undo が Dired バッファに元の名前を復元するため、Dired
バッファがディレクトリの実際の内容と同期しなくなります。
「クリックして選択」モード (dired-click-to-select-mode)
に入ります。このモードでは、ファイル名に対してマウスボタン mouse-2
を押すと、そのマークの状態が切り替わります。このモードは、タッチスクリーンデバイスでファイル管理を行う際に便利です。
ファイル名上で「ホールド」ジェスチャー(タッチスクリーンでのEmacsの使用を参照)が検出されると有効になり、マークされたファイルを操作するDiredコマンドが完了すると自動的に無効になります。