我有这段代码:
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"
Esc
v
``.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
):