Les presento 3 métodos. Los dos primeros son casos particulares, que requieren menos pulsaciones de teclas. El último es genérico.
|
representa la posición del cursor.
Intercambie argumentos adyacentes (no funciona para los últimos dos)
function func(foo[0], |bar(), baz.spam, qux->norf)
Pasos:
dW
eliminar la palabra actual (argumento)
W
ir al primer char del siguiente argumento
P
pegar antes del cursor
Intercambia los dos últimos argumentos
function func(foo[0], bar()|, baz.spam, qux->norf)
Pasos:
dt,
eliminar hasta la próxima coma
E
ir al último personaje del siguiente argumento
P
pegar antes del cursor
Intercambia dos argumentos
function func(|foo[0], bar(), baz.spam, qux->norf)
Pasos:
vt,d
eliminar visualmente hasta coma
W
varias veces hasta llegar al argumento con el que desea intercambiar
gP
pegue antes del cursor y coloque el cursor en el carácter después del contenido pegado
dt,
eliminar hasta la próxima coma. reemplazar ,
por )
si este es el último argumento
`<
volver al comienzo de la última área visual (el cursor se colocará en la coma)
P
pegar antes del cursor
Editar: como señaló @ aharris88, el OP quiere que el último argumento sea el primero y mover todos los demás a la derecha.
Rotar argumentos a la derecha
function func(foo[0], bar(), baz.spam|, qux->norf)
Pasos:
dw
Eliminar ,␣
dt)
eliminar el último argumento
%p
saltar a paréntesis de apertura y pegar el último argumento
a,␣
inserte una coma y espacio
<Esc>
volver al modo normal
O, si no quieres salir del modo normal:
"rdw
eliminar ,␣
en un registror
dt)
eliminar el último argumento
%p
saltar a paréntesis de apertura y pegar el último argumento
"rp
pegar contenido del registro r
Bonificación: un GIF para cada caso:
intercambio1 , intercambio2 , intercambio3 y rotación