2017-05-29 5 views
1

elispに*のようなワイルドカードを使用してファイル名を拡張することはできますか?例えばelispでexpand-file-nameにワイルドカードを使用していますか?

、私は

(expand-file-name "~/.emacs.d/elpa/babel-repl-20160504.1501") 

/home/username/.emacs.d/elpa/babel-repl-20160504.1501に展開することを見ました。

(expand-file-name "~/.emacs.d/elpa/babel-repl*") 

(複数の一致が存在する場合、最初のファイル名を取る):

も私たちが行うことができるようにワイルドカードを含むファイル名を拡張する機能はありますか?

は、私は上記を試してみましたが、 expand-file-name

(Ubuntuの16.04からのEmacs 24.5を)*を認識していないようだ - 編集 - 私は(byte-recompile-directory (file-expand-wildcards "~/.emacs.d/elpa/babel-repl*/") 0)を試してみましたが、エラーWrong type argument: stringp, nilを得@Drew

私はelispとstringpタイプ(文字列のリスト、私は推測します)にはあまりよく分かりません。最初に一致するファイル名を取得するために、返された値file-expand-wildcards(car)を使用しようとしました。しかし、Emacsはまだ正しく動作します。

任意のポインタ?

答えて

1

file-expand-wildcardsをお試しください:

file-expand-wildcardsfiles.elでコンパイルされたLisp関数です。

(file-expand-wildcards PATTERN &optional FULL)

ワイルドカードパターンPATTERNを展開します。

パターンに一致するファイル名のリストを返します。

PATTERNが絶対ファイル名として記述されている場合は、 も絶対値です。

PATTERNは、相対ファイル名として記述されている場合、それは現在のデフォルト・ディレクトリ、default-directoryに 相対的に解釈されます。

返されるファイル名は通常、現在の デフォルトディレクトリを基準にしています。ただし、FULLがnil以外の場合は絶対値です。

これは、拡張のリストを提供します。最初のものか、あなたが望むものを選んでください。

関連する問題