我有这段代码:
fill_in "Name",with: "John"
fill_in "Email",with: "user@example.com"
fill_in "Password",with: "supersafe"
Run Code Online (Sandbox Code Playgroud)
我想更换之后所写的一切事:有user.,所以我可以只需添加完成代码name,email并password经过相应的,user..
fill_in "Name",with: user.name
fill_in "Email",with: user.email
fill_in "Password",with: user.password
Run Code Online (Sandbox Code Playgroud)
此外,从选择的视觉块的一行导航到另一行的方式(可能是一个vim插件?)当然是最佳的,虽然不是这里的要点.
一个更简单的选择是不用替换它user.,而是删除它d$; 然而选择问题仍然存在.
我尝试了正常Ctrl-V选择但由于:字符放在每行的不同列中,我没有所需的行为.
谢谢
或者,如果(像我一样)您更喜欢使用您手动编辑的命令,而不是输入疯狂的正则表达式:
:g/with:/norm yi"$"_ca"?user.C-r"Escv``.u`
g:/with:/ (适用于包含"with:"的所有行(如果缓冲区不包含其他行,则这实际上是可选的)norm 正常模式下的以下"键":
yi" (猛拉第一个引用的值)$ (移到行尾...)"_ca" (更改引用的文本) ?user. (以...开头user.) C-r" (以及最初被拉动的文本) Esc (完成)v``.u` (粘贴位小写)这可能是一个品味问题,但对我来说效果很好.
复杂?这是一个技巧:我实际上做的是在一行上执行编辑(用qq... 录制宏q),然后
:%norm @q
Run Code Online (Sandbox Code Playgroud)
将它应用于所有行
演示:( 注意它仍然使用gu`` instead of.v \``.u):
