답변:
허, 당신이 할 수없는 것처럼 보입니다 ( 여기 에서 찍은 , 내 것을 강조합니다).
점 다음에 'foo'의 모든 인스턴스를 'bar'로 바꾸려면 Mx replace-string 명령을 두 개의 인수
foo
와 와 함께 사용하십시오bar
. 교체는 지점 이후에만 이루어 지므로 전체 버퍼를 덮으려면 먼저 시작해야합니다 .
개인적으로 버퍼를 두 개 ( C-x 2
)로 나누고 맨 위 ( C-Home
) 로 이동 한 다음 replace 명령을 실행하고 원래 창 ( C-x o
)으로 다시 전환 한 다음 두 번째 ( C-x 0
)를 종료하십시오. 더 간단하게 만드는 트릭이 있는지 모릅니다.
Emacs 24 이상에서 작업하기 위해 아래를 사용했습니다.
;; query replace all from buffer start
(fset 'my-query-replace-all 'query-replace)
(advice-add 'my-query-replace-all
:around
#'(lambda(oldfun &rest args)
"Query replace the whole buffer."
;; set start pos
(unless (nth 3 args)
(setf (nth 3 args)
(if (region-active-p)
(region-beginning)
(point-min))))
(unless (nth 4 args)
(setf (nth 4 args)
(if (region-active-p)
(region-end)
(point-max))))
(apply oldfun args)))
(global-set-key "\C-cr" 'my-query-replace-all)
지역 교체 사례와 모든 START 및 END 인수가 전달되었습니다.