먼저 버퍼 상단으로 돌아간 다음 검색 / 쿼리를 수행하는 것이 불편합니다. 검색의 경우 C-s
한 번 더 누르면 둘러 쌀 수 있지만 쿼리 / 바꾸기 작업은 지루합니다.
두 작업 모두에 버퍼 상단으로 돌아 가지 않고 간단한 해킹이 있습니까?
답변
허, 당신이 할 수없는 것처럼 보입니다 ( 여기 에서 찍은 , 내 것을 강조합니다).
점 다음에 ‘foo’의 모든 인스턴스를 ‘bar’로 바꾸려면 Mx replace-string 명령을 두 개의 인수
foo
와 와 함께 사용하십시오bar
. 교체는 지점 이후에만 이루어 지므로 전체 버퍼를 덮으려면 먼저 시작해야합니다 .
개인적으로 버퍼를 두 개 ( C-x 2
)로 나누고 맨 위 ( C-Home
) 로 이동 한 다음 replace 명령을 실행하고 원래 창 ( C-x o
)으로 다시 전환 한 다음 두 번째 ( C-x 0
)를 종료하십시오. 더 간단하게 만드는 트릭이 있는지 모릅니다.
답변
(defun my-replace-string ()
(interactive)
(save-excursion
(beginning-of-buffer)
(call-interactively 'replace-string)))
답변
나는 이것을 위해 iedit 를 사용 합니다. 매우 유용한.
답변
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 인수가 전달되었습니다.