我想,问题很常见。比方说,我们有一个源文件,希望用另一个字符串替换一些字符串。
通常,我使用以下命令:
:%s/test/testValue/gc
但是,如果字符串很长并且我们只需要触摸它怎么办?输入类似的东西很无聊:
%s/someLongAndDirtyString/somelongAndDirtystring/gc
是否可以将光标放在someLongAndDirtyString
字上,按某个魔术键并在最后一行中获取以下内容?
%s/someLongAndDirtyString/someLongAndDirtyString/gc
然后我们可以稍微改变一下新字符串并继续替换。
当然,这只是一个想法。请告诉我这种更换的最佳方式。
由于
答案 0 :(得分:23)
您可能对this answer感兴趣我如何使用寄存器,但这里有四种方法:
编辑命令时,按 CTRL R 然后 CTRL W 在光标下插入单词。< / p>
另见:help c_CTRL-R
转到你的话,点击 * ,然后点:%s//replacement/g
。如果不使用搜索模式,则使用从寄存器@/
获取的最后搜索模式。
执行:nnoremap <f12> :%s/<c-r><c-w>/<c-r><c-w>/gc<c-f>$F/i
(ctrl-f由'cedit'选项决定)
您可以将此映射放入.vimrc中 这会将 F12 键映射到您想要的位置,光标将保留在您想要的位置。
转到你的话,点击 * ,然后执行:%s//
CTRL R , / /gc
CTRL-R然后/插入搜索寄存器的内容。
答案 1 :(得分:13)
好吧,如果您的光标位于要替换的单词上,您可以点击*将突出显示并搜索该单词,然后您可以输入:
:%s//newstring/gc
,vim将在斜杠之间插入最后搜索到的字符串。