Spec-Zone.ru › Elisp

Подпрограммы посещения

Функция 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API