コードをリファクタリングするとき、関数の引数を交換できると便利です。
変更例:
func(foo[0], bar(), baz.spam)
に
func(baz.spam, foo[0], bar())
引数を左/右に交換して、関数の括弧とコンマを保持する方法はありますか?
注:それ自体が独自の引数を持つ関数呼び出しである引数を考慮する場合、これは非常に複雑にfunc(baz->spam, foo[0], bar(a, b, c))なる可能性があります。
コードをリファクタリングするとき、関数の引数を交換できると便利です。
変更例:
func(foo[0], bar(), baz.spam)
に
func(baz.spam, foo[0], bar())
引数を左/右に交換して、関数の括弧とコンマを保持する方法はありますか?
注:それ自体が独自の引数を持つ関数呼び出しである引数を考慮する場合、これは非常に複雑にfunc(baz->spam, foo[0], bar(a, b, c))なる可能性があります。
回答:
| カーソル位置を示します
func(foo[0], bar(), |baz.spam)
手順:
dt) 削除します baz.spamFf カーソルを文字fに移動します foo[0]vt,p foo [0]を削除し、それに置き換えます baz.spam$P 括弧の前にfoo [0]を貼り付けます<,および>,)。cx通常モードとXビジュアルモード)。NA。g<およびg>)。cia 「引数の変更」という非常に優れた機能について説明します。❤️
3つの方法を紹介します。最初の2つは特定のケースで、キーストロークが少なくて済みます。最後のものは汎用です。
|カーソル位置を表します。
function func(foo[0], |bar(), baz.spam, qux->norf)
手順:
dW 現在のWordを削除します(引数)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,␣レジスターに削除するrdt) 最後の引数を削除%p 開き括弧にジャンプして最後の引数を貼り付けます"rp レジスタの内容を貼り付ける r