Next: , Up: Dired (ディレクトリーエディター)   [Contents][Index]


30.1 Diredの起動

Diredを呼び出すには、C-x d (dired)とタイプします。これはミニバッファーを使用してディレクトリー名を読み取り、そのディレクトリーのファイルを一覧するするDiredバッファーを開きます。ミニバッファーの引数に、ワイルドカードによるファイル名パターンを与えることもできます。この場合、Dliredバッファーには、そのパターンにマッチする、すべてのファイルが一覧されます。ディレクトリー部分にワイルドカードが出現することもあります。たとえば、

C-x d  ~/foo/*.el  RET
C-x d  ~/foo/*/*.el  RET

1つ目の例は、ディレクトリー‘foo’内の、拡張子‘.el’のすべてのファイルをリストします。2つ目の例は、‘foo’のすべてのサブディレクトリー内の、拡張子‘.el’のファイルをリストします。

Posixシステムでシステムシェルがglobstar (再帰的なグロブ機能)をサポートしていて、それが有効な際にはDiredで再帰的なグロビングを使用できます:

C-x d  ~/foo/**/*.el  RET

このコマンドは‘foo’のすべてのサブディレクトリーを再帰的に下降して、拡張子‘.el’をもつすべてのファイルのディレクトリーリストを生成します。シェル間でのglobstarの実装は微妙に異なることに注意してください。期待する動作が知るにはシェルのマニュアルを確認してください。

globstarをサポートしてもデフォルトではサポートが無効なシェルの場合には、dired-maybe-use-globstarを非nil値にカスタマイズすることでDiredにこの機能を使用させることができます。これにより、それらのシェルでglobstarを有効にする方法をDiredに知らせて有効にすることができます(これらのシェルのリストについてはdired-enable-globstar-in-shellを参照)。

ミニバッファー内では、通常のヒストリー、および補完のコマンドが使用できます。特に、M-nは(もしあれば)visitされているファイルの名前を配します(ミニバッファーヒストリーを参照)。

C-x C-f (find-file)にディレクトリー名を与えて、Diredを呼び出すこともできます。

C-x C-j (dired-jump)とタイプすることによって、任意のバッファーのデフォルトディレクトリー(default-directoryを参照)でDiredを呼び出すようEmacsに指示できます。バッファーがファイルをvisitしている場合には、Diredバッファーでそのファイルの行にポイントを移動します。それ以外の場合には、リストされたディレクトリーの最初のファイルにポイントが移動します。例外としてDiredバッファーでC-x C-jとタイプすると、Emacsは親ディレクトリーのディレクトリーリストを表示して、dired-jumpを呼び出したディレクトリーに対応する行にポイントを配置します。C-x 4 C-j (dired-jump-other-window)も同様の効果をもちますが、新たなウィンドウにDiredバッファーを表示します。

変数dired-listing-switchesは、ディレクトリーをリストするために、lsに与えるオプションを指定します。この文字列には、‘-l’が含まれていなければなりませんdiredコマンドにプレフィクス引数を使用した場合、ディレクトリーの指定の前に、lsのためのスイッチを指定できます。スイッチが指定される方法は問いません。lsのスイッチには、引数を要求しない短いオプション(1文字)と、長いオプション(‘--’で始まり、引数は‘=’で指定される)を含めることができます。

Diredは改行文字が埋め込まれた名前をもつファイルを上手く処理できません。そのようなファイルが多ければ、dired-listing-switchesに‘-b’の追加を検討することができます。これはすべてのスペシャル文字をクォートすることで、Diredはそれらをより良好に処理することができます(一時的に‘-b’を追加するためにC-u C-x dコマンドの使用も可能)。

Diredがls呼び出しに使用したスイッチの指標をモードラインに表示します。デフォルトでは、そのスイッチによる並べ替えが名前順か日付順を示すものかどうかの判定をDiredが試み、それをモードラインに示します。dired-switches-in-mode-line変数がas-isなら、スイッチをそのまま表示します。この変数の値が整数なら、表示するスイッチをその長さに切り詰めます。この変数の値は関数でもよく、その場合には関数は唯一のパラメーターとしてdired-actual-switchesとともに呼び出されて、モードラインに表示する文字列をリターンする必要があります。

システムのlsコマンドが‘--dired’オプションをサポートする場合、Diredは自動的にそのオプションを渡します。これにより、Diredが名前を解析できないという特殊なファイル名にたいして、lsが特別なエスケープシーケンスを付します。Emacsセッションで最初にDiredを実行するとき、lsコマンドに‘--dired’オプションを指定して呼び出すことにより、そのスイッチをサポートするかどうかチェックします。exitコードが0の場合、それ以降Diredは‘--dired’オプションを使用し、それ以外の場合は使用しません。変数dired-use-ls-diredをカスタマイズすることにより、このチェックを抑止することができます。値unspecified(デフォルト)は、チェックを行なうことを意味します。その他の非nil値は、‘--dired’オプションを使用することを意味します。nilは、‘--dired’オプションを使用しないことを意味します。

MS-WindowsやMS-DOSシステム、およびいくつかのリモートシステムでは、Emacsがlsをエミュレートします。このエミュレーションのオプションと特性については、MS-Windowsでのlsのエミュレーションを参照してください。

Diredバッファーを他のウィンドウに表示するには、C-x 4 d (dired-other-window)を使用します。C-x 5 d (dired-other-frame)は、Diredバッファーを別のフレームに表示します。

q (quit-window)とタイプすると、Diredバッファーは隠され(bury)ます。ウィンドウがそのバッファーのためだけに作成された場合は、そのウィンドウを削除します。