Spec-Zone.ru › Elisp

Создание буферов

В этом разделе описываются два примитива для создания буферов. get-buffer-create создает буфер, если не существует буфера с указанным именем; generate-new-buffer всегда создает новый буфер и присваивает ему уникальное имя.

Обе функции принимают необязательный аргумент inhibit-buffer-hooks. Если он имеет ненулевое значение, создаваемый буфер не запускает хуки kill-buffer-hook, kill-buffer-query-functions (см. Уничтожение буферов), и buffer-list-update-hook (см. Список буферов). Это позволяет избежать замедления работы внутренних или временных буферов, которые никогда не представляются пользователю или не передаются другим приложениям.

Другие функции, которые можно использовать для создания буферов, включают with-output-to-temp-buffer (см. Временные отображения) и create-file-buffer (см. Посещение файлов). Запуск дочернего процесса также может создать буфер (см. Процессы).

Функция: get-buffer-create buffer-or-name &optional inhibit-buffer-hooks

Эта функция возвращает буфер с именем buffer-or-name. Возвращенный буфер не становится текущим буфером — эта функция не изменяет текущий буфер.

buffer-or-name должно быть либо строкой, либо существующим буфером. Если это строка и существует активный буфер с таким именем, get-buffer-create возвращает этот буфер. Если такого буфера не существует, он создает новый буфер. Если buffer-or-name является буфером вместо строки, он возвращается как есть, даже если он неактивен.

(get-buffer-create "foo")
     ⇒ #<buffer foo>

Основной режим для вновь созданного буфера устанавливается в режим Fundamental. (Значение по умолчанию переменной major-mode обрабатывается на более высоком уровне; см. Автоматический основной режим.) Если имя начинается с пробела, буфер первоначально отключает запись информации о возможности отката (см. Откат).

Функция: generate-new-buffer name &optional inhibit-buffer-hooks

Эта функция возвращает только что созданный пустой буфер, но не делает его текущим. Имя буфера генерируется путем передачи name функции generate-new-buffer-name (см. Имена буферов). Таким образом, если нет буфера с именем name, то это имя нового буфера; если это имя уже используется, к name добавляется суффикс вида ‘<n>’, где n — целое число.

Ошибка сигнализируется, если name не является строкой.

(generate-new-buffer "bar")
     ⇒ #<buffer bar>
(generate-new-buffer "bar")
     ⇒ #<buffer bar<2>>
(generate-new-buffer "bar")
     ⇒ #<buffer bar<3>>

Основной режим для нового буфера устанавливается в режим Fundamental. Значение по умолчанию переменной major-mode обрабатывается на более высоком уровне. См. Автоматический основной режим.

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/Creating-Buffers.html

Spec-Zone.ru

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