emacs - यदि एमएसीएस में एक वर्तमान बफर मौजूद है तो मैं कैसे जांच सकता हूं?




elisp (3)

यदि आप उपर्युक्त के रूप में अपने काल्पनिक कार्य को परिभाषित करना चाहते हैं, तो यह काम करता है:

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

मैं स्टार्टअप पर *scratch* बफर को स्वचालित रूप से बंद करने के लिए इसका उपयोग करता हूं, इसलिए मुझे अपने बफ़र्स की सूची में इसके माध्यम से चक्र नहीं करना है, जैसे कि:

(defun buffer-exists (bufname) (not (eq nil (get-buffer bufname))))
(if (buffer-exists "*scratch*")  (kill-buffer "*scratch*"))

मैं एक फ़ंक्शन लिखना चाहता हूं जो अगर कोई बफर नाम पहले से मौजूद है तो कार्रवाई करता है। उदाहरण के लिए:

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

क्या elisp के पास एक फंक्शन है जो बफर के अस्तित्व के लिए जाँच करेगा कि मेरा बना हुआ "बफर-वजूद" फ़ंक्शन कैसे करता है?

धन्यवाद


यह जो मैंने किया है:

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

यह बफर खरोंच के लिए जाँच करता है। अगर ऐसी कोई बात है, तो उसे मार डालो। यदि नहीं, तो कुछ भी न करें।


documentation :

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




elisp