Подпрограммы посещения
Функция find-file-noselect использует две важные подпрограммы, которые иногда полезны в коде пользователя Lisp: create-file-buffer и after-find-file. В этом разделе объясняется, как их использовать.
- Функция: create-file-buffer имя_файла
-
Эта функция создаёт буфер с подходящим именем для посещения имя_файла и возвращает его. Она использует имя_файла (без каталога) в качестве имени, если это имя свободно; в противном случае добавляет строку, такую как «<2>», чтобы получить незанятое имя. Смотрите также Создание буферов. Обратите внимание, что библиотека uniquify влияет на результат этой функции. Смотрите Uniquify в Руководстве по GNU Emacs.
Обратите внимание:
create-file-bufferне связывает новый буфер с файлом и не выбирает буфер. Она также не использует режим по умолчанию.(create-file-buffer "foo") ⇒ #<buffer foo>(create-file-buffer "foo") ⇒ #<buffer foo<2>>(create-file-buffer "foo") ⇒ #<buffer foo<3>>Эта функция используется
find-file-noselect. Она используетgenerate-new-buffer(см. Создание буферов).
- Функция: after-find-file &optional error warn noauto after-find-file-from-revert-buffer nomodes
-
Эта функция устанавливает основной режим буфера и анализирует локальные переменные (см. Автоматический основной режим). Она вызывается
find-file-noselectи функцией обратной замены по умолчанию (см. Обратная замена).Если чтение файла вызвало ошибку, потому что файл не существует, но существует его каталог, вызывающий должен передать ненулевое значение для error. В этом случае
after-find-fileвыводит предупреждение: «(Новый файл)». При более серьёзных ошибках вызывающий обычно не должен вызыватьafter-find-file.Если warn ненулевое, то эта функция выводит предупреждение, если существует файл автосохранения и он новее, чем посещаемый файл.
Если noauto ненулевое, это означает, что не нужно включать или выключать режим автосохранения. Режим остаётся включённым, если он был включён ранее.
Если after-find-file-from-revert-buffer ненулевое, значит этот вызов пришёл из
revert-buffer. Это не имеет прямого эффекта, но некоторые функции режима и крючковые функции проверяют значение этой переменной.Если nomodes ненулевое, это означает, что не нужно изменять основной режим буфера, не нужно обрабатывать спецификации локальных переменных в файле и не нужно запускать
find-file-hook. Эта функция используетсяrevert-bufferв некоторых случаях.Последнее, что делает
after-find-file– это вызывает все функции в спискеfind-file-hook.
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/Subroutines-of-Visiting.html