wgrep allows you to edit a grep buffer and apply those changes to
the file buffer like sed
interactively. No need to learn sed
script, just learn Emacs.
Put this file into load-path'ed directory, and byte compile it if desired. And put the following expression into your ~/.emacs.
(require 'wgrep)
You can edit the text in the grep buffer after typing C-c C-p
.
After that the changed text is highlighted.
The following keybindings are defined:
C-c C-e
: Apply the changes to file buffers.
C-c C-u
: All changes are unmarked and ignored.
C-c C-d
: Mark as delete to current line (including newline).
C-c C-r
: Remove the changes in the region (these changes are not
applied to the files. Of course, the remaining
changes can still be applied to the files.)
C-c C-p
: Toggle read-only area.
C-c C-k
: Discard all changes and exit.
C-x C-q
: Exit wgrep mode.
To save all buffers that wgrep has changed, run
M-x wgrep-save-all-buffers
wgrep-finish-edit
.(setq wgrep-auto-save-buffer t)
(setq wgrep-enable-key "r")
(setq wgrep-change-readonly-file t)
--context
(-A
-B
and -C
) option.GNU sed helm-ag has a similar feature.
This program was forked from Matsushita Akihisa's grep-edit.el v2.11. As this website is now inaccessible, emacswiki.org's copy may be consulted.
Imported version can be downloaded from this orphan commit: https://github.com/mhayashi1120/Emacs-wgrep/tree/import-original-author/
Following added implementations and differences.