Next: , Previous: , Up: Dired   [Contents][Index]


30.6 Diredでのマークとフラグ

ファイルに‘D’というフラグをつけるのではなく、他の文字(通常は‘*’)でファイルをマークすることもできます。ほとんどのDiredコマンドは、‘*’でマークされたファイルにたいしてコマンドを処理します。フラグ付けされたファイルだけに作用するコマンドは、それらのファイルを削除するxだけです。

以下は‘*’でマークしたり、マークを外したり、マークにたいして操作を行なうコマンドです(ファイルにたいしてフラグをつけたり外すコマンドについては、Dired Deletionを参照してください)。

m
* m

カレントファイルを‘*’でマークします(dired-mark)。リージョンがアクティブの場合、かわりにリージョン内のすべてのファイルをマークします。そうでない場合、数引数nが与えられたときは、カレント行から数えて、次のn個のファイルまでをマークします(nが負の場合、前の-n個のファイルをマークします)。

* *

すべての実行ファイルを‘*’でマークします(dired-mark-executables)。数引数を指定すると、それらのファイルのマークを外します。

* @

すべてのシンボリックリンクを、‘*’でマークします(dired-mark-symlinks)。数引数を指定すると、それらのファイルのマークを外します。

* /

...を除く、すべてのディレクトリーを‘*’でマークします(dired-mark-directories)。数引数を指定すると、それらのディレクトリーのマークを外します。

* s

...を除く、カレントのサブディレクトリー内のすべてのファイルをマークします(dired-mark-subdir-files)。

u
* u

この行の任意のマークを外します(dired-unmark)。リージョンがアクティブの場合は、かわりにリージョン内のすべてのファイルのマークを外します。そうでない場合、数引数nが与えられた場合は、カレントファイルから数えて、次のn個のファイルのマークを外します(nが負の場合、前の-n個のファイルのマークを外します)。

DEL
* DEL

ポイントを前の行に移動して、その行のマークを外します(dired-unmark-backward)。リージョンがアクティブの場合、かわりにリージョン内のすべてのファイルのマークを外します。そうでない場合、数引数nが与えられたときは、カレントファイルから数えて、前のn個のファイルのマークを外します(nが負の場合、次の-n個のファイルのマークを外します)。

* !
U

Diredバッファーの、すべてのファイルのマークを外します(dired-unmark-all-marks)。

* ? markchar
M-DEL

文字markcharを使用する、すべてのマークを外します(dired-unmark-all-files)。引数は1文字です — これを終了させるためにRETを使用しないでください。以下の* cの説明を参照してください。これは1つのマーク文字を、他の文字に置換します。

数引数を指定した場合、このコマンドはマークされたファイルごとに、マークを外すか確認します。yはyes(はい)で、nはno(いいえ)、!は残りのファイルにたいして確認を行なわずにマークを外します。

* C-n
M-}

次にマークされたファイルへ下に移動します(dired-next-marked-file)。“マークされた”ファイルとは、任意の種類のマークがついているファイルです。

* C-p
M-{

前のマークされたファイルへ、上に移動します(dired-prev-marked-file)。

t
* t

すべてのマークを切り替えます(dired-toggle-marks)。つまり、‘*’でマークされたファイルのマークを外し、マークされていないファイルを‘*’でマークします。他の方法でマークされたファイルは影響を受けません。

* c old-markchar new-markchar

文字old-markcharを使ったすべてのマークを、文字new-markcharを使ったマークに置き換えます(dired-change-marks)。このコマンドは主に‘*’や‘D’以外の文字を使用したマークを作成するのに使われます。引数は1文字です — 終了させるためにRETを使用しないでください。

このコマンドは、マーク文字としてほとんどの任意の文字を使用できるので、ファイルをさまざまなクラスに分類することができます。old-markcharがスペース(‘ ’)の場合、このコマンドは、すべてのマークされていないファイルにたいして処理を行ないます。new-markcharがスペースの場合、このコマンドは対象となるファイルのマークを外します。

このコマンドの威力を知る例として、以下ではマークされていないファイルすべてにフラグ‘D’をセットして、すでに‘D’フラグがついているものはフラグを外しています:

* c D t  * c SPC D  * c t SPC

この例では、すでに‘t’でマークされたファイルがないと仮定しています。

% m regexp RET
* % regexp RET

名前が正規表現regexpにマッチするすべてのファイルを、(‘*’で)マークします(dired-mark-files-regexp)。このコマンドは% dと似ていますが、‘D’のフラグをつけるかわりに、‘*’でマークします。

マッチングには、ファイル名のディレクトリー部分以外だけが使用されます。マッチのアンカーとして、‘^’と‘$’が使用できます。サブディレクトリーを一時的に隠すことにより、それらを除外できます(Hiding Subdirectoriesを参照してください)。

% g regexp RET

内容に正規表現regexpにたいするマッチを含むすべてのファイルを、(‘*’で)マークします(dired-mark-files-containing-regexp)。このコマンドは% mと似ていますが、ファイル名ではなくファイル内容を検索する点が異なります。ファイルがEmacsバッファーでvisitされている場合、このコマンドはファイルを再visitせずにバッファーの内容を調べるので、ディスク上のファイル内容が、最後にvisitしたときから変更されている場合、矛盾した結果になるかもしれません。これを望まない場合は、このコマンドを呼び出す前に、バッファーでvisitされているファイルをリバートするか、それらのバッファーにたいしてauto-revertモードをオンに切り替えたいと思うでしょう。Revertingを参照してください。

C-/
C-x u
C-_

Diredバッファーでの、マークの追加や削除などの変更をアンドゥします(dired-undo)。このコマンドは実際のファイル操作をリバートしたり、失われたファイルを回復しません! これは単にバッファー自身にたいする変更をアンドゥするだけです。

ファイルを操作するコマンドの後でこれを使用することにより、問題が起こる場合もあります。たとえば1つ以上のファイルをリネームしてから、Diredバッファーでdired-undoにより元の名前にリストアした場合、Diredバッファーと、そのディレクトリーの実際の内容が、同期しなくなります。