Angenommen, ich möchte vor jeder Zeile, die mit dem Wort "Do" beginnt, eine Zahl einfügen. Der Befehl würde ungefähr so aussehen :%s/^(Do )/1. \1/
, aber was kann ich tun, damit jedes Mal nacheinander Zahlen anstelle derselben Zahl angewendet werden?
Beachten Sie, dass ich mir der zahlreichen Möglichkeiten bewusst bin, dies mit Makros und Strg-A zu tun, aber für die Verwendung in komplizierteren Ex-Modus-Befehlen möchte ich die Antwort auf genau die Titelfrage wissen.
Für ein anderes Beispiel, bei dem ein Makroansatz nicht so einfach wäre, nehmen wir an, ich möchte allen Instanzen des Wortes "Abschnitt" eine Nummer hinzufügen und sie fortlaufend nummerieren lassen, aber die Zählung nach jeder Zeile, die mit "Kapitel" beginnt, neu starten. Ein Ex-Modus-Befehl, der dies fast kann, abgesehen davon, dass die hinzuzufügende Zahl tatsächlich erhöht wird, lautet:
:g/^Chapter/;/^Chapter/-s/Section\zs/ 1/g
Sie können sehen, dass eine einfache Methode zum Inkrementieren von Zahlen im Ex-Modus-Ersatzbefehl sehr nützlich sein kann.
quelle
\=i.
ist ein ungültiger Ausdruck..
wird zu einem verketteten Operator im\=
Ausdruck. Alsos//\=i . '. '/
wird'. '
Check out anhängen:help expression-syntax
.