Beim Refactoring von Code wäre es nützlich, Funktionsargumente austauschen zu können.
Ändern für zB:
func(foo[0], bar(), baz.spam)
in
func(baz.spam, foo[0], bar())
Gibt es eine Möglichkeit, Argumente nach links / rechts zu tauschen, wobei die Klammern und Kommas der Funktionen beibehalten werden?
Beachten Sie , dies könnte durchaus beteiligt werden , wenn Sie für Argumente Konto möchten , die sich Funktionsaufrufe mit ihren eigenen Argumente sind - zB: func(baz->spam, foo[0], bar(a, b, c))
- diese Fälle unterstützen wahrscheinlich einige umfassendere Analyse einbeziehen würde.
cia
"Änderung des Arguments". ❤️Ich präsentiere 3 Methoden. Die ersten beiden sind Sonderfälle, für die weniger Tastenanschläge erforderlich sind. Der letzte ist generisch.
|
repräsentiert die Cursorposition.Benachbarte Argumente tauschen (funktioniert nicht für die letzten beiden)
Schritte:
dW
Löscht das aktuelle Wort (Argument)W
gehe zum ersten Zeichen des nächsten ArgumentsP
Einfügen vor dem CursorTauschen Sie die letzten beiden Argumente aus
Schritte:
dt,
lösche bis zum nächsten KommaE
Gehe zum letzten Zeichen des nächsten ArgumentsP
Einfügen vor dem CursorTauschen Sie zwei beliebige Argumente aus
Schritte:
vt,d
visuell bis Komma löschenW
mehrmals, bis Sie das Argument erreichen, mit dem Sie tauschen möchtengP
Einfügen vor dem Cursor und Platzieren des Cursors auf dem Zeichen nach dem Einfügen des Inhaltsdt,
lösche bis zum nächsten Komma. Ersetzen Sie,
durch,)
wenn dies das letzte Argument ist`<
gehe zurück zum Anfang des letzten sichtbaren Bereichs (der Cursor wird auf das Komma gesetzt)P
Einfügen vor dem CursorEdit: Wie von @ aharris88 gezeigt, möchte das OP, dass das letzte Argument das erste ist und alle anderen nach rechts bewegt.
Argumente nach rechts drehen
Schritte:
dw
löschen,␣
dt)
letztes Argument löschen%p
Springe zu den öffnenden Klammern und füge das letzte Argument eina,␣
füge ein Komma und ein Leerzeichen ein<Esc>
kehren Sie in den normalen Modus zurückOder, wenn Sie den normalen Modus niemals verlassen möchten:
"rdw
,␣
in ein Register löschenr
dt)
letztes Argument löschen%p
Springe zu den öffnenden Klammern und füge das letzte Argument ein"rp
Inhalt des Registers einfügenr
Bonus: ein GIF für jeden Fall: Swap1 , Swap2 , Swap3 und drehen
quelle