我有一个像
这样的功能myfunc(arg1 = whatever, arg2 = different)
我想将其转换为
myfunc(arg2 = different, arg1 = whatever)
实现此目的的最快命令序列是什么?假设光标位于第一个" m"。我最好的尝试是fadt,lpldt)%p
。
答案 0 :(得分:1)
有一个vim插件:vim-exchange
arg1 = whatever
arg2 = different
答案 1 :(得分:0)
我建议你稍微更改它,以便它可以在光标所在的任何地方工作,以便它可以在任何参数上工作:
0f(ldt,lpldt)%p
我改变了你的方法后,我添加了0
将光标移动到开头,我将fa
更改为f(l
,这样无论参数名称如何都可以使用。
现在你可以把它放到一个宏中,或者,如果你经常使用它,你可以把它作为一个映射:
nnoremap <C-k> 0f(ldt,lpldt)%p
我在这里随意选择了Ctrl-k,你可以随心所欲地使用它。
答案 2 :(得分:0)
我编写了一个用于操作名为Argumentative的函数参数的插件。有了它,你只需执行>,
,光标所在的参数将向右移动。它还以i,
和a,
。
答案 3 :(得分:0)
使用纯vim,将光标放在行的开头:
%3dB%pldt,lp
这是我当场想到的最快(12杆)。 只要等号周围总是有空格,这应适用于所有名称。
% " Jump to closing brace
3dB " Delete to the beginning of 3 WORDS, backwards
% " Jump to the beginning brace
p " Paste the deleted text from the default register
l " Move right one character
dt, " Delete until the next comma
l " Move right one character
p " paste the deleted text from the default register
您也可以将其转换为宏,以便随时使用。