例如:在VIM中,
test
sample replace
test1
replace
sample test2
Run Code Online (Sandbox Code Playgroud)
:g/sample/s/replace/test3/ - 只会在匹配的行中用"sample"替换"replace"
test
sample test3
test1
replace
sample test2
Run Code Online (Sandbox Code Playgroud)
在VIM中,只能在非匹配行上替换,可以通过以下方式完成:v/sample/s/replace/test3 - 仅在不包含"sample"的非匹配行上替换"replace"
test
sample replace
test1
test3
sample test2
Run Code Online (Sandbox Code Playgroud)
如何使用emacs完成上述事情?
phi*_*ils 17
你使用的是Emacs 24吗?如果是这样,您可以使用内置的出现编辑模式:
occur RET模式)RET 有些第三方库可以在早期版本的Emacs上执行类似的技巧.我相信moccur-edit是其中之一,但我从未使用它.
编辑:关于你问题的第二部分,虽然我不熟悉更直接的方法来实现它,但我们可以通过这种方法来实现它:
occur RET . RET获取包含所有行的缓冲区flush-lines RET(模式)RET删除匹配的行