直观地选择一个块并替换每个出现的块

直观地选择一个块并替换每个出现的块

我正在重构一些代码,并且同一代码块多次出现。我想抓取该块(可能在可视模式下),然后用我刚刚定义的方法调用替换它的每次出现。

就像是。

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

变成...

method_call(stuff)

method_call(stuff)

method_call(stuff)

method_call(stuff)

答案1

有几种方法可以做到这一点,具体取决于您计划执行的频率。下面的方法非常简单,因为它使用普通的 Vim 命令,但如果您必须经常这样做,可能会很乏味。

首先,将要重构的代码块拖放到默认寄存器中。例如,将光标移动到块的第一行,输入V,将光标移动到块的最后一行并输入Y。现在将默认寄存器复制到搜索寄存器,将换行符替换为\n

:let @/ = substitute(@", '\n', '\\n', 'g')

最后,用方法调用替换所有块。

:%s//method_call(stuff)/

相关内容