तो buffer-string
वर्तमान बफर की सामग्री मिलती है। लेकिन यह अन्य शौकीनों को निर्दिष्ट करने की अनुमति नहीं देता है।
मैं उसके आसपास कैसे पहुंच सकता हूं? क्या मुझे save-window-excursion
काम करने के लिए कुछ चाहिए ?
process-send-string
और मैं फंस गया।
तो buffer-string
वर्तमान बफर की सामग्री मिलती है। लेकिन यह अन्य शौकीनों को निर्दिष्ट करने की अनुमति नहीं देता है।
मैं उसके आसपास कैसे पहुंच सकता हूं? क्या मुझे save-window-excursion
काम करने के लिए कुछ चाहिए ?
process-send-string
और मैं फंस गया।
जवाबों:
Emacs में बहुत सारी चीजें वर्तमान बफर पर काम करती हैं। आपको वर्तमान बफ़र को बदलने और इसे पूरा करने के बाद इसे पुनर्स्थापित करने की आवश्यकता है। with-current-buffer
उन सरल मामलों के लिए उपयोग करें जहां आपको किसी अन्य बफर में कुछ करने की आवश्यकता है, और save-current-buffer
अधिक जटिल मामलों के लिए जहां आपको कई बफ़र्स के बीच नेविगेट करने की आवश्यकता है।
(defun buffer-string* (buffer)
(with-current-buffer buffer
(buffer-string)))
यदि आप गुण के बिना बफर की पाठ सामग्री चाहते हैं, तो कॉल करें buffer-substring-no-properties
।
buffer-string
बफर के केवल संकुचित हिस्से को लौटाता है । यदि आपको संपूर्ण सामग्री की आवश्यकता है, तो संकीर्णता को बचाने के बाद इसे चौड़ा करें।
(defun buffer-whole-string (buffer)
(with-current-buffer buffer
(save-restriction
(widen)
(buffer-substring-no-properties (point-min) (point-max)))))
यदि आपको बिंदु को बचाने की आवश्यकता है, तो भी कॉल करें save-excursion
। ध्यान दें कि save-excursion
केवल वर्तमान बफ़र में बिंदु को पुनर्स्थापित करता है, इसलिए यदि आपको किसी अन्य बफ़र पर स्विच करने और वहां घूमने की आवश्यकता है, तो save-excursion
अंदर कॉल करें save-current-buffer
या with-current-buffer
।