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


8.2 ミニバッファーでのファイル名

C-x C-f (find-file)のようなコマンドは、ミニバッファーを使ってファイル名引数を読み取ります。ファイル名を読み取るためにミニバッファーを使用しているとき、通常は最後にスラッシュがついたテキストで開始されています。これはデフォルトディレクトリー(default directory)です。たとえば以下のように開始されていたとします:

Find file: /u2/emacs/src/

ここで‘Find file: ’はプロンプト、‘/u2/emacs/src/’はデフォルトディレクトリーです。ここでbuffer.cを入力すると/u2/emacs/src/buffer.cを指定したことになります。デフォルトディレクトリーについての情報は、File Namesを参照してください。

..で親ディレクトリーを指定できます。つまり/a/b/../foo.el/a/foo.elと同じです。M-DELを使えば、ディレクトリー名を後方にkillできます(Wordsを参照してください)。

デフォルトディレクトリーとは無関係のファイルを指定する場合、デフォルト値全部をC-a C-kでkillできます。かわりにデフォルト値を無視することもできます。これはスラッシュで始まる絶対パスのファイル名か、チルダで始まるファイル名をデフォルトディレクトリーに続けて入力します。たとえば以下のようにして/etc/termcapを指定できます:

Find file: /u2/emacs/src//etc/termcap

ダブルスラッシュにより、Emacsは2番目のスラッシュより前のすべてを無視します。上の例では/u2/emacs/src/は無視されるので、引数は/etc/termcapとなります。無視される部分のファイル名は、端末に可能なら目立たないような表示になります(これを無効にするには、コマンドM-x file-name-shadow-modeでFile Name Shadowモードをオフにしてください)。

Emacsは~/をホームディレクトリーと解釈します。~/foo/bar.txtはホームディレクトリーにある、fooというディレクトリーの、bar.txtという名前のファイルを指定します。さらに~user-id/はログイン名がuser-idというユーザーの、ホームディレクトリーを意味します。~の前のディレクトリー名は無視されるので、/u2/emacs/~/foo/bar.txt~/foo/bar.txtと同じです。

MS-WindowsとMS-DOSでは、ユーザーは常にホームディレクトリーを持つとは限らないので、Emacsはいくつかの代替ディレクトリーを使います。MS-WindowsについてはWindows HOME、MS-DOSについては MS-DOS File Namesを参照してください。 これらのシステムでは~user-id/は現在のユーザーの場合だけ、つまりuser-idが現在のユーザーのログイン名のときだけがサポートされます。

Emacsがファイル名を読みとるとき、デフォルトディレクトリーを挿入しないようにするには、変数insert-default-directorynilに変更します。この場合、ミニバッファーは空で開始されます。それでも相対パスでのファイル名引数は、同じデフォルトディレクトリーにもとづいて解釈されます。

ミニバッファーにリモートファイル名を入力することもできます。 Remote Filesを参照してください。