我有以下代码:
if some_cond && another
foo_bar
end
Run Code Online (Sandbox Code Playgroud)
我想把它改成:
foo_bar if some_cond && another
Run Code Online (Sandbox Code Playgroud)
什么是vim方法正确地做到这一点?
我将使用以下正常模式命令序列
ddjVpkJ<<
Run Code Online (Sandbox Code Playgroud)
或者这个Ex命令链1:
:m+|-j|<|+d
Run Code Online (Sandbox Code Playgroud)
这里我假设在重构之前光标位于if-line(不一定在该行的开头).
1首先,if通过:move +
命令将-line向下移动一行.该:move命令会剪切给定范围的行(如果未指定,则为当前行),并将其粘贴到此命令的唯一参数所寻址的行下方.该+地址是一个快捷方式.+1
表示法指的是下一行(见:help {address}).其次,作为条件语句主体的行与刚移动的行连接在一起
if.该:join命令将给定范围的行连接成一行.的-范围是一个缩短的形式-1指的是光标(见上面的线地址:help :range).第三,shiftwidth使用该:<命令将新连接的线向左移动一行.最后,该命令将删除end其地址(称为+范围)的剩余行
:delete.