Как я могу проверить, существует ли текущий буфер в Emacs?

Обратите внимание на инструкцию STRTR-- Описание string strtr (string $ str, string $ from, string $ to) string strtr (string $ str, array $ replace_pairs) Если заданы три аргумента, эта функция возвращает копию str где. ..

STR_REPLACE-- ... Если поиск или замена являются массивами, их элементы обрабатываются в первую очередь. ...

STRTR каждый поворот НЕ действует для следующего, НО STR_REPLACE делает.

37
задан Luke Girvin 4 September 2011 в 01:18
поделиться

2 ответа

От документация :

(get-buffer name)

Return the buffer named name (a string).
If there is no live buffer named name, return nil.
name may also be a buffer; if so, the value is that buffer.

(get-buffer-create name)

Return the buffer named name, or create such a buffer and return it.
A new buffer is created if there is no live buffer named name.
If name starts with a space, the new buffer does not keep undo information.
If name is a buffer instead of a string, then it is the value returned.
The value is never nil.
55
ответ дан Mirzhan Irkegulov 4 September 2011 в 12:18
поделиться
  • 1
    +1 для Скидки с цены, какой IMO должен быть языком разметки по умолчанию для всех, везде и навсегда. – Jesse Dhillon 12 July 2010 в 18:13

Если вы хотите определить свою гипотетическую функцию, как указано выше, это работает:

(defun buffer-exists (bufname)   (not (eq nil (get-buffer bufname))))

Я использую это для автоматического закрытия * царапин * буфер на запуск, поэтому мне не нужно вело Через него в моем списке буферов, следующим образом:

(defun buffer-exists (bufname) (not (eq nil (get-buffer bufname))))
(if (buffer-exists "*scratch*")  (kill-buffer "*scratch*"))
4
ответ дан 27 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: