このセクションではファイル名を補完するための低レベルサブルーチンについて説明します。より高レベルの関数についてはファイル名の読み取りを参照してください。
この関数はディレクトリーdirectory内でpartial-filenameで始まる名前のファイルにたいする、すべての補完可能なリストをリターンする。補完の順番はそのディレクトリー内でのファイル順序であり、これは予測不能であり何の情報ももたない。
引数partial-filenameは非ディレクトリーパートを含むファイル名でなければならず、スラッシュ(いくつかのシステムではバックスラッシュ)が含まれていてはならない。directoryが絶対ディレクトリーでなければ、directoryの前にカレントバッファーのデフォルトディレクトリーが追加される。
以下の例では~rms/lewisがカレントデフォルトディレクトリーで、名前が‘f’で始まる5つのファイルfoo、file~、file.c、file.c.~1~、file.c.~2~がある:
(file-name-all-completions "f" "") ⇒ ("foo" "file~" "file.c.~2~" "file.c.~1~" "file.c")
(file-name-all-completions "fo" "") ⇒ ("foo")
この関数はディレクトリーdirectory内でファイル名filenameを補完する。これはディレクトリーdirectory内で、filenameで始まるすべてのファイル名にたいして、最長の共通プレフィックスをリターンする。predicateが非nil
なら展開された絶対ファイル名を単一の引数として呼び出して、predicateを満足しない補完候補を無視する。
マッチが1つだけ存在して、かつfilenameが正確にそれにマッチする場合には、この関数はt
をリターンする。関数はディレクトリーdirectoryがfilenameで始まる名前のファイルを含まなければnil
をリターンする。
以下の例では~rms/lewisがカレントデフォルトディレクトリーで、名前が‘f’で始まる5つのファイルfoo、file~、file.c、file.c.~1~、file.c.~2~がある:
(file-name-completion "fi" "") ⇒ "file"
(file-name-completion "file.c.~1" "") ⇒ "file.c.~1~"
(file-name-completion "file.c.~1~" "") ⇒ t
(file-name-completion "file.c.~3" "") ⇒ nil
file-name-completion
はこのリスト内の任意の文字列で終わるファイル名を通常は無視する。すべての可能な補完がこれらのサフィックスのいずれか1つで終わるときはそれらを無視しない。この変数はfile-name-all-completions
に影響しない。
以下は典型的な値:
completion-ignored-extensions ⇒ (".o" ".elc" "~" ".dvi")
completion-ignored-extensions
のある要素がスラッシュ‘/’で終わる場合には、それはディレクトリーを示す。スラッシュで終わらない要素がディレクトリーにマッチすることは決してない。したがって上記の値はfoo.elcという名前のディレクトリーを除外しないだろう。