Yalnızca yerleşik işlevselliği kullanan bunu yapmanın bir yolu:
İlk satırın bulunduğu satırda nokta ile begin
tuşuna basın C-SPC.
Şunun bir sonraki tekrarına git end
:
C-s end
RET
Değiştir foo
ile bar
:
M-% foo
RET bar
RET !
Bu, query-replace
eğer varsa, tüm tampon yerine aktif bölge üzerinde çalışacak olan gerçeği kullanır .
Elbette, özel bir komut da tanımlayabilirsiniz:
(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))))
Bu komut her zaman arabellek başından itibaren arama yapar, bu nedenle nokta, onu çağırdığınızda begin
/ foo
/ sonra olabilir end
.
Bunun için bir anahtar ciltleme ayarlayın:
(global-set-key (kbd "C-c r") 'replace-from-to)