उदाहरण के लिए मैं सभी पाठ कोष्ठक,(), UPCASE में बनाना चाहता हूं। यह सहभागी निम्न करने के लिए तुच्छ है:Emacs: मैं एक defis में एक lisp समारोह के साथ regexp कैसे बदल सकता हूँ?
M-x query-replace-regexp
replace: "(\(.+?\))"
with : "(\,(upcase \1))"
इसके बजाय मैं एक defun
जो कि क्या करेंगे लिखना चाहते हैं:
(defun upcs()
(interactive)
(goto-char 1)
(while (search-forward "(\\(.+?\\))" nil t) (replace-match "(\\,(upcase \\1))" t nil)))
लेकिन यह काम नहीं करता! जबकि निम्न काम करता है (यह foo
और bar
parenthesized ग्रंथों के संलग्न कर देता है):
(defun HOOK()
(interactive)
(goto-char 1)
(while (search-forward-regexp "(\\(.+?\\))" nil t) (replace-match "(foo \\1 bar)" t nil)))
यदि आप 'put-in-par' को खत्म करना चाहते हैं, तो आप यह कर सकते हैं: (अपरकेस-ल्यूक() (इंटरैक्टिव) (गोटो-चार 1) (जबकि (खोज-आगे-regexp "(\\ ([^ \\)] + \\)) "nil t) (प्रतिस्थापन-मिलान (concat" ("(अपकेस (मिलान-स्ट्रिंग 1))") ") टी शून्य)) – zev
इसके लिए 'प्रारूप' का भी उपयोग करना यह उद्देश्य अधिक जटिल मामलों में बेहतर और अधिक लचीला होगा। – ocodo