Ao refatorar o código, seria útil poder trocar argumentos de função.
Mudando para, por exemplo:
func(foo[0], bar(), baz.spam)
para dentro
func(baz.spam, foo[0], bar())
Existe alguma maneira de trocar argumentos para a esquerda / direita, mantendo parênteses e vírgulas de função no lugar?
Observe que isso pode se tornar bastante envolvido se você quiser explicar argumentos que são chamadas de função com seus próprios argumentos - por exemplo: func(baz->spam, foo[0], bar(a, b, c))
- apoiar esses casos provavelmente envolveria uma análise mais abrangente.
cia
"mudar de argumento". ❤️Eu apresento 3 métodos. Os dois primeiros são casos particulares, que exigem menos pressionamentos de tecla. O último é genérico.
|
representa a posição do cursor.Trocar argumentos adjacentes (não funciona nos dois últimos)
Passos:
dW
excluir o Word atual (argumento)W
vá para o primeiro caractere do próximo argumentoP
cole antes do cursorTroque os dois últimos argumentos
Passos:
dt,
excluir até a próxima vírgulaE
vá para o último caractere do próximo argumentoP
cole antes do cursorTroque dois argumentos
Passos:
vt,d
excluir visualmente até vírgulaW
várias vezes até chegar ao argumento com o qual deseja trocargP
cole antes do cursor e coloque o cursor no caractere após o conteúdo coladodt,
exclua até a próxima vírgula. substitua,
por)
se este for o último argumento`<
volte ao início da última área visual (o cursor será colocado na vírgula)P
cole antes do cursorEdit: como apontado por @ aharris88, o OP quer que o último argumento seja o primeiro e mova todos os outros para a direita.
Girar argumentos para a direita
Passos:
dw
excluir,␣
dt)
excluir último argumento%p
pule para abrir parênteses e cole o último argumentoa,␣
insira vírgula e espaço<Esc>
retornar ao modo normalOu, se você não quiser sair do modo normal:
"rdw
excluir,␣
em um registror
dt)
excluir último argumento%p
pule para abrir parênteses e cole o último argumento"rp
colar o conteúdo do registror
Bônus: um GIF para cada caso: swap1 , swap2 , swap3 e rotação
fonte