यहाँ यह करने का एक तरीका है जो केवल अंतर्निहित कार्यक्षमता का उपयोग करता है:
उस बिंदु के साथ जिसमें पहली घटना होती है begin
, दबाएँ C-SPC।
की अगली घटना पर जाएं end
:
C-s end
RET
इसके foo
साथ बदलें bar
:
M-% foo
RET bar
RET !
यह इस तथ्य का उपयोग करता है कि query-replace
अगर एक है तो पूरे बफर के बजाय सक्रिय क्षेत्र पर काम करेगा।
बेशक, आप एक कस्टम कमांड को भी परिभाषित कर सकते हैं:
(defun replace-from-to (beg end str repl)
(interactive "sBegin: \nsEnd: \nsString: \nsReplacement: ")
(save-excursion
(goto-char (point-min))
(let ((start-pos (search-forward beg))
(end-pos (search-forward end)))
(replace-string str repl nil start-pos end-pos))))
यह कमांड हमेशा बफर की शुरुआत से खोज करेगा, इसलिए बिंदु के बाद begin
/ foo
/ end
जब आप इसे लागू कर सकते हैं।
इसके माध्यम से एक महत्वपूर्ण बंधन स्थापित करें:
(global-set-key (kbd "C-c r") 'replace-from-to)