技巧85-利用查找历史,迭代完成复杂的模式

  • 匹配单引号内部任意字符
/\v '.+'
  • .+执行了贪婪匹配,它匹配了尽可能多的字符。
  • 匹配单引号内部任意字符(单引号除外)
/\v'.[^']+'
  • 匹配单引号内部任意字符(非组成单词的单引号除外)
/\v'([^']|'\w)+'
  • 查看之前的查找命令
q/
  • 将匹配引号括起来的内容保存在\1寄存器中
/\v'(([^']|'\w)+)'
  • 替换查找的内容,单引号换成双引号
:%s//"\1"/g
  • 将查找域留空,Vim将重用上一此的查找命令

  • 完整替换命令

:%s//\v'(([^']|'\w)+)'/"\1"/g

总结

  • 正则表达式用法,匹配成对单引号的方法:/\v'.+'
  • 将查找域留空,Vim将重用上一此的查找命令
  • 使用查看历史查找或使用q/查看历史查找,逐步改进命令,使用incsearch来预先查看搜索。最终达到目的。