我正在重构一些代码,并且同一代码块多次出现。我想抓取该块(可能在可视模式下),然后用我刚刚定义的方法调用替换它的每次出现。
就像是。
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)/