hob*_*es3 10 regex vim replace
有时我想使用s/search_for/replace_with/options格式在Vim中搜索和替换,但该search_for部分变成了一个复杂的正则表达式,我第一次无法正确使用.
我有set incsearch hlsearch我的.vimrc所以Vim会在我使用/search_for格式搜索时开始突出显示.这对于首次"测试"/"预览"我的正则表达式非常有用.然后,一旦我得到我想要的正则表达式,我申请s/搜索和替换.
但这种方法有两个很大的局限性:
/模式s/下创建的正则表达式复制并粘贴到模式是一件麻烦事.(和))或使用魔术模式\v,而在/.那么你们如何尝试在Vim中进行复杂的正则表达式搜索和替换呢?
Dae*_*yth 16
在搜索模式下测试你的正则表达式/,然后使用s//new_value/.如果您没有将任何内容传递给搜索部分s,则需要进行最近的搜索.
正如@Sam Brink所说,你可以<C-r>/用来粘贴搜索寄存器的内容,所以s/<C-r>//new_value/也可以.当您拥有复杂的搜索表达式时,这可能会更方便.
如前所述,您可以练习搜索部分/your-regex-here/.当它正常工作时,您可以使用s//replacement/最新的搜索.
完成一次&后s///,即使您从那时起进行了不同的搜索,也可以使用重复上一个命令.您还可以使用:&g在当前行上全局替换.你可以用来:.,$&g搜索here(.)和文件末尾()之间的所有匹配$,以及其他各种可能性.
当然,如果操作没有按预期工作,您也可以撤消.
正如其他人已经注意到我通常s//replacement/用来做我的替换,但你也可以<C-r>/用来粘贴搜索寄存器中的内容.所以,你可以使用s/<C-r>//replacement/其中<C-r>/将粘贴您的搜索,你可以做任何你想要的最后一分钟的变化.
<C-r>插入一个寄存器光标所在的内容
的/寄存器保存最近的搜索词
:registers会显示每个寄存器的内容,所以你可以看到什么可用.
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |