回答:
ええ、あなたはできないように見えます(ここから、私の鉱山を強調):
ポイントの後の「foo」のすべてのインスタンスを「bar」に置き換えるには、コマンドMx replace-stringを2つの引数
foo
andで使用しbar
ます。置換はポイントの後でのみ行われるため、バッファ全体をカバーする場合は、最初に最初に移動する必要があります。
個人的には、バッファを2つに分割し(C-x 2
)、一番上(C-Home
)に移動してからreplaceコマンドを実行し、元のペインに切り替えて(C-x o
)、2番目のペインを削除し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引数について。