我希望跳转到包含特定模式的行,并确定是否应用:s命令。
但是在应用:s命令后,'/'寄存器被替换为:s命令中的模式,使用原始模式跳转并不方便。
那么,有没有一个更方便的方法来完成这个任务? 谢谢!
但是在应用:s命令后,'/'寄存器被替换为:s命令中的模式,使用原始模式跳转并不方便。
那么,有没有一个更方便的方法来完成这个任务? 谢谢!
Vim(8+版本)提供了:keeppatterns
命令,防止您的命令改变搜索寄存器。 示例:
:keeppatterns %s/foo/bar/g
如需更多帮助,请参见:h :keeppatterns
。
function! s:CustomSearch()
let oldsearch = @/
:%s/pattern/replace/flags
let @/=oldsearch
endfunction
:keeppatterns
。例如::keeppatterns %s/foo/bar/g
。请参阅 :h :keeppatterns
。 - Peter Rincker在Vim手册中提供了另一种删除最后一个搜索模式的方法 (:help histdel
):
call histdel("search",-1)
let @/ = histget("search",-1)
:s/<search>/<subst>/c
- Lieven Keersmaekersg/X/s/Y/Z/gc
- Lieven Keersmaekers