Wie erreicht man eine automatische Listennummerierung in vim?

11

Verträge usw. formale Dinge benötigen nummerierte Listen.

1. Some text

2. More text

 2.1. Sub-section text

usw.

Der Schlüssel besteht darin, die manuelle Umnummerierung beim Einfügen oder Löschen eines Listenelements zu vermeiden. Ist das möglich mit vim? Die Konsistenz der Listennummerierung ist wirklich schwer manuell zu verfolgen.

Eines der damit verbundenen Ziele besteht darin, eine ordnungsgemäße Revisionskontrolle durch ein nicht verschleiertes Speicherformat wie Klartext zu ermöglichen.

lkraav
quelle
1
Wenn eine PDF-Datei akzeptabel ist, können nicht nummerierte Listenmarkierungen zum Kennzeichnen von Listenelementen und asciidocspäter zum Konvertieren der Markierung in eine PDF-Datei mit Zeilennummerierung verwendet werden. Aber auch ich würde gerne wissen, wie man vim für die automatisierte Zeilennummerierung von Nur-Text-Dateien verwendet.
Wildcard
1
Das ist etwas, was Textverarbeitungsprogramme ziemlich gut können.
Romainl
@Wildcard PDF ist in der Tat akzeptabel. Das einzige, was die anfängliche anonyme Kennzeichnung ist, erschwert das Verweisen auf bestimmte nummerierte Elemente im gesamten Dokument. Trotzdem ist Ihre Methode definitiv besser als nichts.
lkraav
Wäre es akzeptabel, eine Form von Markdown zu verwenden, die dann automatisch mit einem Ex-Modus-Befehl konvertiert / nicht konvertiert wird? zB Präfix Listenelemente der obersten Ebene mit - , Listenelemente der zweiten Ebene mit -- usw. Dies scheint der wahrscheinlichste Ansatz zu sein; Einen Ausgangspunkt finden Sie in meiner letzten Frage zur fortlaufenden Nummerierung im Ex-Modus.
Wildcard
Da die Optionen knapp sind, ist alles möglich.
lkraav

Antworten:

1

Ich habe ein Plugin, das Ihnen (teilweise?) Helfen kann: lazyList (Keine automatische Listennummerierung ).

Im folgenden Beispiel ( _ist die Cursorposition) ...

1. Some text
2. More text   
 Sub-secti_on text
 Sub-section text   
 Sub-section text

... führen Sie einfach den Befehl aus :LazyList '2.%1%. ', um Folgendes zu erhalten:

1. Some text
2. More text   
 2.1. Sub-secti_on text
 2.2. Sub-section text   
 2.3. Sub-section text

Führen Sie denselben Befehl aus, um die Indizes zu entfernen.

Standardmäßig werden die Indizes zum aktuellen Absatz hinzugefügt (gleicher Einzug oder wenn sie von leeren Zeilen umgeben sind), aber Sie können sie einer visuellen Auswahl hinzufügen.

Eine gute Möglichkeit in Ihrem Fall:

  1. Indizes hinzufügen
  2. Entfernen Sie die Indizes, bevor Sie neue Elemente hinzufügen.
  3. Fügen Sie nach dem Hinzufügen der neuen Elemente Indizes hinzu.

Dieses Video sollte expliziter sein.

Das Schlimme am Plugin ist, dass es keine visuelle Auswahl mit leeren Zeilen berücksichtigt. Ich sollte dieses Verhalten überdenken.

PS Englisch ist nicht meine Muttersprache, bitte entschuldigen Sie die Fehler.

MisterOccan
quelle