是否可以在 vim 上创建快捷方式以在文件上多次替换?

Is it possible create a shortcut on vim to replace multiple times on a file?

我想在 vim 上创建一个快捷方式来多次替换一个文件,这是我多次使用的工具。

工具示例:

:%s/this.props/otherProps/gc

此命令会将所有this.props替换为otherProps并要求确认

但我正在尝试将此命令转换为快捷方式,如下例所示:

// on .vimrc

noremap <leader>F :%s///gc

所以在这种情况下,我会在每次按 <leader> + F 时输入第一个单词,然后按 tab 并输入第二个单词,然后按输入。

我尝试输入了 </code> 和 <code>,但没有用。

我试图搜索一些关于此的文档,但我没有找到任何东西,也许有一些 word 更具体的我还不知道。

您可以通过向 .vimrc 添加如下内容来使用自定义函数:

function! Replace()
  call inputsave()
  let pattern = input('Enter pattern:')
  let replacement = input('Enter replacement:')
  call inputrestore()
  execute '%s/'.pattern.'/'.replacement.'/gc'
endfunction

nnoremap <leader>f :call Replace()<cr>

每次点击 <leader>f 时都会调用该函数。然后会首先要求您提供模式,然后要求替换,然后执行替换命令。

虽然这不能完全满足您的要求,但它确实非常接近。

noremap <leader>F :%s//gc<LEFT><LEFT><LEFT>

这将键入命令 noremap <leader>F :%s//gc,但将光标留在 2 个斜杠之间,准备好键入要查找和替换的内容。

现在您只需点击 <leader>F 并开始输入 this.props/otherprops,然后点击回车。它完全符合您的要求,但不是按 tab,而是按 /