我如何使用 vim 来自动化这个……?

我如何使用 vim 来自动化这个……?

我目前正在实现数百个类似的函数,它们的形式如下

String name(String arg1, String arg2, String arg3, String arg4) {
  trampoline("name={name}&arg1={arg1}&arg2={arg2}&arg3={arg3}&arg4={arg4}",
              name, arg1, arg2, arg3, arg4);
}

棘手的部分是该函数可以采用 2 到 10 个参数。

如果我能有办法让 vim 询问我“函数名称:”,“参数数量:”,“arg1:”,我就可以轻松构建这些函数。

如果您需要更多信息来帮助我,我非常乐意提供。

谢谢

答案1

不是一个真正的答案:如果你已经认识到你应该自动化这个(针对数百个功能),你应该更进一步并完全自动化它:在 中编写一个代码生成器insert_your_favourite_language_here

答案2

第一个想法:在 vim 中有for(尝试:help for)。

您可以创建一个简单的函数来执行此操作。

答案3

以下是基于的答案mu-template(使用 将其移植到普通 viml 应该很容易:put)。

VimL: " {rtp}/template/{your_filetype}/{yourgenerator}.template
VimL: let s:nb_args = INPUT("Number of args: ")
VimL: let s:args=map(copy(range(1,s:nb_args)), '"arg".v:val')
VimL: let s:formal = join(map(copy(s:args), "'String '.v:val"), ', ')
VimL: let s:real = join(s:args, ', ')
VimL: let s:format = join(map(copy(s:args), "v:val.'={'.v:val.'}'"), '&')
String name(<+s:formal+>) {
    trampoline("name={name}&<+s:format+>",
        name, <+s:real+>);
}

相关内容