나는 3 가지 방법을 제시한다. 처음 두 가지는 특별한 경우이며 키 입력이 덜 필요합니다. 마지막은 일반적인 것입니다.
|
커서 위치를 나타냅니다.
인접 인수 교체 (마지막 두 개에서는 작동하지 않음)
function func(foo[0], |bar(), baz.spam, qux->norf)
단계 :
dW
현재 단어 삭제 (인수)
W
다음 인수의 첫 번째 문자로 이동
P
커서 앞에 붙여 넣기
마지막 두 인수 교환
function func(foo[0], bar()|, baz.spam, qux->norf)
단계 :
dt,
다음 쉼표까지 삭제
E
다음 인수의 마지막 문자로 이동
P
커서 앞에 붙여 넣기
두 개의 인수를 바꾸십시오
function func(|foo[0], bar(), baz.spam, qux->norf)
단계 :
vt,d
쉼표까지 시각적으로 삭제
W
당신이 교환하고자하는 논쟁에 도달 할 때까지 여러 번
gP
붙여 넣기 후 붙여 넣기 및 붙여 넣기 내용 뒤에 문자 위에 커서를 놓습니다
dt,
다음 쉼표까지 삭제하십시오. 교체 ,
가 )
이번이 마지막 인수 인 경우
`<
마지막 시각적 영역의 시작으로 돌아갑니다 (커서는 쉼표에 배치됩니다)
P
커서 앞에 붙여 넣기
편집 : @ aharris88이 지적한 것처럼 OP는 마지막 인수가 첫 번째 인수가되고 다른 인수는 모두 올바르게 이동하기를 원합니다.
인수를 오른쪽으로 회전
function func(foo[0], bar(), baz.spam|, qux->norf)
단계 :
dw
지우다 ,␣
dt)
마지막 인수 삭제
%p
괄호를 열고 마지막 인수를 붙여 넣습니다.
a,␣
쉼표와 공백을 삽입하십시오
<Esc>
정상 모드로 돌아 가기
또는 일반 모드를 떠나고 싶지 않은 경우 :
"rdw
,␣
레지스터로 삭제r
dt)
마지막 인수 삭제
%p
괄호를 열고 마지막 인수를 붙여 넣습니다.
"rp
레지스터 내용 붙여 넣기 r
보너스 : 각 경우에 대한 GIF :
swap1 , swap2 , swap3 및 회전