Ich versuche, „/index.html“ zu einigen Ordnerpfaden in einer Liste wie folgt Hinzufügen anhängen:„/index.html“, um Pfade in Vim
path/one/
/another/index.html
other/file/index.html
path/number/two
this/is/the/third/path/
path/five
sixth/path/goes/here/
Offensichtlich ist der Text muss nur sein hinzugefügt, wo es noch nicht existiert.
:%s/^\([^.]*\)$/\1\/index.html/
Das einzige Problem ist, dass Sie diesen Befehl nach dem Ausführen, einige Zeilen wie die 1., 5. und 7. im vorherigen Beispiel mit duplizierten Schrägstrichen am Ende: Ich kann einige guten Ergebnisse mit (vim-Befehl) erreichen. Das ist auch einfach zu lösen, ich muss nur nach Duplikaten suchen und sie durch einen einzigen Schrägstrich ersetzen.
Aber die Frage ist: Gibt es keinen besseren Weg, um das richtige Ergebnis auf einmal zu erreichen?
Ich bin ein Vim Anfänger und kein Regex Master auch. Irgendwelche Tipps werden wirklich geschätzt!
Danke!
Vielen Dank Andrew!Ihre Erklärung war großartig und es funktioniert einwandfrei. – sidyll
Dies ist ein idealer Zeitpunkt für die Verwendung der '\ v' Flag und Nicht-'/'Trennzeichen für die Lesbarkeit. ':% s @ \ v^([^.] {-}) /? $ @ \ 1/index.html @' –