Die inneren und äußeren Worttextobjekte in vim verhalten sich unterschiedlich, wenn sie mit einer Zählung kombiniert werden. Bei gegebenem Text (Cursor befindet sich innerhalb des Wortes first
)
first second third fourth
beides y2iw
wird das erste Wort in das Register schreiben, y3iw
/ y4iw
die ersten beiden Wörter usw. Ich muss also mindestens y7iw
alle vier (inneren) Wörter herausziehen. Bei äußeren Wörtern entspricht die angegebene Anzahl der Anzahl der herausgezogenen Wörter.
Warum entsprechen in diesem Fall zwei iw
Objekte einem einzigen Wort und kann ich iw
ein ähnliches Verhalten erreichen wie aw
?
Antwort1
Geben Sie ungefähr 5 Leerzeichen ein und führen Sie die folgenden Schritte aus viw
: Die ungefähr 5 Leerzeichen werden ausgewählt, da iw
sie auch \s+
als separates „Objekt“ betrachtet werden.
In Ihrem Beispiel haben Sie 7 iw
Objekte:
yiw
Amisfirst
im unbenannten Register.y2iw
zerrtfirst
(mit dem abschließenden Leerzeichen) an dem unbenannten Register.y3iw
Reißtfirst second
(mit Leerzeichen) in das unbenannte Register.y4iw
zerrtfirst second
(mit den Leerzeichen) an dem unbenannten Register.- Und so weiter…
Andererseits aw
betrachtet das Wortund eine beliebige Anzahl nachfolgender Leerzeichenals „Objekt“.
In Ihrem Beispiel haben Sie 4 aw
Objekte:
yaw
zerrtfirst
(mit dem abschließenden Leerzeichen) an dem unbenannten Register.y2aw
zerrtfirst second
(mit dem abschließenden Leerzeichen) an dem unbenannten Register.y3aw
zerrtfirst second third
(mit dem abschließenden Leerzeichen) an dem unbenannten Register.y4aw
Amisfirst second third fourth
im unbenannten Register.
Wenn Sie iw
sich so verhalten möchten, aw
verwenden Sie einfach aw
.