Заполнение имени файла
В этом разделе описываются низкоуровневые подпрограммы для заполнения имени файла. Для функций более высокого уровня см. Чтение имён файлов.
- Функция: file-name-all-completions partial-filename directory
-
Эта функция возвращает список всех возможных дополнений для файла, имя которого начинается с partial-filename в каталоге directory. Порядок дополнений соответствует порядку файлов в каталоге, что непредсказуемо и не несёт полезной информации.
Аргумент partial-filename должен быть именем файла, не содержащим части каталога и слешей (или обратных слешей в некоторых системах). Текущий каталог буфера добавляется к directory, если directory не является абсолютным.
В следующем примере предположим, что ~rms/lewis — текущий каталог по умолчанию и в нём есть пять файлов, имена которых начинаются с 'f': 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")
- Функция: file-name-completion filename directory &optional predicate
-
Эта функция дополняет имя файла filename в каталоге directory. Она возвращает самое длинное общее префиксное совпадение для всех имён файлов в каталоге directory, которые начинаются с filename. Если predicate не
nil, то она игнорирует возможные дополнения, которые не удовлетворяют predicate, после вызова этой функции с одним аргументом, расширенным абсолютным именем файла.Если существует только одно совпадение и filename точно совпадает с ним, функция возвращает
t. Функция возвращаетnilесли каталог directory не содержит имени, начинающегося с filename.В следующем примере предположим, что текущий каталог по умолчанию имеет пять файлов, имена которых начинаются с 'f': 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
- Пользовательский параметр: completion-ignored-extensions
-
file-name-completionобычно игнорирует имена файлов, которые заканчиваются любой строкой из этого списка. Она не игнорирует их, когда все возможные дополнения заканчиваются одним из этих суффиксов. Эта переменная не влияет наfile-name-all-completions.Типичное значение может выглядеть так:
completion-ignored-extensions ⇒ (".o" ".elc" "~" ".dvi")Если элемент
completion-ignored-extensionsзаканчивается слешем '/', это сигнализирует о каталоге. Элементы, которые не заканчиваются слешем, никогда не будут соответствовать каталогу; таким образом, вышеуказанное значение не будет фильтровать каталог с именем foo.elc.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Completion.html