当前位置:  开发笔记 > 编程语言 > 正文

如何检查Emacs中是否存在当前缓冲区?

如何解决《如何检查Emacs中是否存在当前缓冲区?》经验,为你挑选了2个好方法。

我想编写一个函数,如果已经存在一个给定缓冲区名称,它将采取行动.例如:

(if (buffer-exists "my-buffer-name")
    ; do something
 )

elisp是否有一个函数来检查是否存在类似于我的"缓冲存在"函数的缓冲区的存在?

谢谢



1> Gareth Rees..:

从文档:

(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.


不需要使用`bufferp`.由于`get-buffer`返回`nil`或缓冲区,你可以直接测试它:`(let((b(get-buffer"foo")))(如果b ...))`

2> 小智..:

这就是我做的:

(when (get-buffer "*scratch*")
  (kill-buffer "*scratch*"))

这将检查缓冲区划痕.如果有这样的事情,就杀掉它.如果没有,什么都不做.


如果你不需要else子句,请使用`when`.
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有