我希望能够找到一个模式的出现,突出显示它,转到模式的下一个出现,突出显示它,转到下一个,依此类推,然后在结束时删除所有出现并进入插入模式。例如,逐个查找<div>
的所有出现,最后删除所有出现并输入插入模式以将其替换为<p>
。我想逐个看到出现的原因是我首先要查看代码中出现的位置,以便决定是否要删除它。例如,我有一些HTML,并希望看到标签在某个代码块中的位置,以便决定是否要删除它们。我知道我可以dw
剪切一个单词或cw
删除单词并进入插入模式。我知道我可以使用像:%s/my_patter/replace_pattern/gc
这样的正则表达式,但这会删除整个文件中的所有出现,这是我不想要的。我想首先迭代模式的每个出现,如果我想在我决定是否要用其他东西替换之前省略它,请跳过它。这与您在Sublime中可以做的类似,通过选择一个单词并按ctrl + D然后用一个键击执行所有出现的更改。
修改
例如,我有这段代码,在这里我想立即用div
替换所有p
但第二个<div class="form-group">
<%= f.label :daily_hours, class: "col-sm-2 control-label" %>
<%= f.text_field :daily_hours, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :date, class: "col-sm-2 control-label" %>
<%= f.date_field :date, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :work_performed, class: "col-sm-2 control-label" %>
<%= f.text_area :work_performed, class: "form-control" %>
</div>
:
Arrays.sort
答案 0 :(得分:2)
我认为你要找的命令是:
:%s/div/p/gc
如果修饰符g
允许您在每行div
找到多个c
实例,则可以通过键入y或n确认是否进行更改。
答案 1 :(得分:1)
Vim只有内置:substitute
标志的gc
命令,正如@ThomasSmyth所回答的那样。但是,像multiple-cursors这样的插件旨在重现多个匹配的选择以及随后的同时编辑。虽然它不是vi风格,但试试看它是否适合您喜欢的编辑风格!