举例来说,我真的希望以下vim替换命令能够用一个膨胀的foop中的一个选项卡替换四个前导空格中的每一个的多个
:%s/\v^(\t*) {4}/\1\t/g
但我仍然需要反复敲击@:直到我得到"模式未找到"。是否有一种优雅的方式来指定"重复直到找不到模式"在替换命令?注意:我 NOT 正在寻找一个涉及使用retab的答案 - 我想要一个非特定于该模式的通用解决方案(并且最好不涉及编写任何类型的脚本) - 我可以使用肌肉记忆来解决问题。
答案 0 :(得分:2)
您已使用^
替换了替换。由于Vim如何进行替换,它会在最后一场比赛结束时寻找下一场比赛。改为使用后视:
:%s/\v(^\s*)@<= {4}/\t/g
如需更多帮助,请参阅:
:h /\@<=
答案 1 :(得分:2)
虽然不一定优雅,但可以在 @ :之前加上 count 。例如:
1 0 0 0 @ :