Mehrere innere Wörter in vim herausziehen

Mehrere innere Wörter in vim herausziehen

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 y2iwwird das erste Wort in das Register schreiben, y3iw/ y4iwdie ersten beiden Wörter usw. Ich muss also mindestens y7iwalle 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 iwObjekte einem einzigen Wort und kann ich iwein ä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 iwsie auch \s+als separates „Objekt“ betrachtet werden.

In Ihrem Beispiel haben Sie 7 iwObjekte:

  • yiwAmis firstim unbenannten Register.
  • y2iwzerrt first(mit dem abschließenden Leerzeichen) an dem unbenannten Register.
  • y3iwReißt first second(mit Leerzeichen) in das unbenannte Register.
  • y4iwzerrt first second(mit den Leerzeichen) an dem unbenannten Register.
  • Und so weiter…

Andererseits awbetrachtet das Wortund eine beliebige Anzahl nachfolgender Leerzeichenals „Objekt“.

In Ihrem Beispiel haben Sie 4 awObjekte:

  • yawzerrt first(mit dem abschließenden Leerzeichen) an dem unbenannten Register.
  • y2awzerrt first second(mit dem abschließenden Leerzeichen) an dem unbenannten Register.
  • y3awzerrt first second third(mit dem abschließenden Leerzeichen) an dem unbenannten Register.
  • y4awAmis first second third fourthim unbenannten Register.

Wenn Sie iwsich so verhalten möchten, awverwenden Sie einfach aw.

verwandte Informationen