次: , 前: Unique File Names, 上: File Names


24.8.6 ファイル名の補完

本節では、ファイル名の補完向けの低レベルのサブルーティンについて述べます。 他の補完関数については、Completionを参照してください。

— 機能: file-name-all-completions partial-filename directory

この関数は、ディレクトリdirectoryにおいて partial-filenameで始まる名前のファイルに対する すべての補完候補から成るリストを返す。 候補の順番はディレクトリ内でのファイルの順番であり、 それは予測できず有用な情報はなにもない。

引数partial-filenameは、ディレクトリ部分やスラッシュを いっさい含まないファイル名であること。 directoryが絶対名でないと、 カレントバッファのデフォルトディレクトリをdirectoryのまえに補う。

つぎの例で、カレントデフォルトディレクトリは~rms/lewisであり、 `f'で始まる名前のファイルは、 foofile~file.cfile.c.~1~file.c.~2~の5つであると仮定する。

          (file-name-all-completions "f" "")
               => ("foo" "file~" "file.c.~2~"
                          "file.c.~1~" "file.c")
          
          (file-name-all-completions "fo" "")
               => ("foo")
     
— 機能: file-name-completion filename directory

この関数は、ディレクトリdirectoryにおいてファイル名filenameを 補完する。 ディレクトリdirectoryにおいてfilenameで始まる すべてのファイル名に共通な最長の文字列を返す。

filenameで始まるものがたった1つであり完全に一致すると、 この関数はtを返す。 ディレクトリdirectoryfilenameで始まる名前がないと nilを返す。

つぎの例で、カレントデフォルトディレクトリには `f'で始まる名前のファイルは、 foofile~file.cfile.c.~1~file.c.~2~の5つであると仮定する。

          (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
     
— ユーザオプション: completion-ignored-extensions

file-name-completionは、このリスト内のいずれかの文字列で終る 名前のファイルを通常無視する。 補完候補すべてがこれらの接頭辞の1つで終る場合や、 補完候補すべてを含んだバッファが表示されている場合には無視しない。

典型的な値はつぎのとおりである。

          completion-ignored-extensions
               => (".o" ".elc" "~" ".dvi")