Spec-Zone.ru › Elisp

Имена буферов

Каждый буфер имеет уникальное имя, которое представляет собой строку. Многие функции, работающие с буферами, принимают в качестве аргумента либо буфер, либо имя буфера. Любой аргумент, называемый buffer-or-name, имеет такой тип, и ошибка сигнализируется, если он не является ни строкой, ни буфером. Любой аргумент, называемый buffer, должен быть фактическим объектом буфера, а не именем.

Буферы, которые являются временными и, как правило, не представляют интереса для пользователя, имеют имена, начинающиеся с пробела, так что команды list-buffers и buffer-menu не упоминают их (но если такой буфер посещает файл, он указывается). Имя, начинающееся с пробела, также изначально отключает запись информации о выполнении отката; см. Откат.

Функция: buffer-name &optional buffer

Эта функция возвращает имя buffer в виде строки. buffer по умолчанию — текущий буфер.

Если buffer-name возвращает nil, это означает, что buffer был убит. См. Уничтожение буферов.

(buffer-name)
     ⇒ "buffers.texi"
(setq foo (get-buffer "temp"))
     ⇒ #<buffer temp>
(kill-buffer foo)
     ⇒ nil
(buffer-name foo)
     ⇒ nil
foo
     ⇒ #<killed buffer>
Команда: rename-buffer newname &optional unique

Эта функция переименовывает текущий буфер на newname. Ошибка сигнализируется, если newname не является строкой.

Обычно rename-buffer сигнализирует об ошибке, если newname уже используется. Однако, если unique не nil, она изменяет newname для создания имени, которое не используется. В интерактивном режиме вы можете сделать unique не nil с числовым префиксом аргумента. (Так реализована команда rename-uniquely).

Эта функция возвращает фактически присвоенное имя буфера.

Функция: get-buffer buffer-or-name

Эта функция возвращает буфер, указанный buffer-or-name. Если buffer-or-name — строка, и нет буфера с таким именем, значение равно nil. Если buffer-or-name — буфер, он возвращается как есть; это не очень полезно, поэтому аргумент обычно является именем. Например:

(setq b (get-buffer "lewis"))
     ⇒ #<buffer lewis>
(get-buffer b)
     ⇒ #<buffer lewis>
(get-buffer "Frazzle-nots")
     ⇒ nil

См. также функцию get-buffer-create в Создание буферов.

Функция: generate-new-buffer-name starting-name &optional ignore

Эта функция возвращает имя, которое было бы уникальным для нового буфера — но не создает буфер. Она начинается с starting-name и генерирует имя, которое в данный момент не используется для какого-либо буфера, добавляя число внутри ‘<…>’. Она начинается с 2 и продолжает увеличивать число до тех пор, пока это не будет имя существующего буфера.

Если необязательный второй аргумент ignore не nil, он должен быть строкой, потенциальным именем буфера. Это означает, что этот потенциальный буфер будет рассматриваться как приемлемый, если он будет проверен, даже если это имя существующего буфера (что обычно отклоняется). Таким образом, если существуют буферы с именами ‘foo’, ‘foo<2>’, ‘foo<3>’ и ‘foo<4>’,

(generate-new-buffer-name "foo")
     ⇒ "foo<5>"
(generate-new-buffer-name "foo" "foo<3>")
     ⇒ "foo<3>"
(generate-new-buffer-name "foo" "foo<6>")
     ⇒ "foo<5>"

См. связанную функцию generate-new-buffer в Создание буферов.

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/Buffer-Names.html

Spec-Zone.ru

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