Sie könnten ?\w
entergefolgt von verwendenA
?\w
sucht rückwärts nach dem ersten WortA
versetzt Sie in die letzte Zeile mit Inhalt in den Einfügemodus
Wenn ich sie mit Klartextdateien wieder in Vim öffne, um Inhalt hinzuzufügen, möchte ich zum Ende der letzten Zeile des Inhalts gehen und in den Einfügemodus gelangen. Im Idealfall kann dies durch ein einfaches GA
Öffnen der Datei erledigt werden. Leider habe ich die Angewohnheit, am Ende der Datei ein paar zusätzliche Zeilenumbrüche hinzuzufügen, und es ist schwierig, sie loszuwerden.
Was ist in diesem Zusammenhang der einfachste Weg in Vim zu sagen: "Gehen Sie zur letzten Zeile in der Datei, die Inhalt enthält, gehen Sie zum Ende dieser Zeile und wechseln Sie in den Einfügemodus"? Ich denke, der Kern meiner Frage ist, wie drücke ich Vim das Konzept der "letzten Zeile mit Inhalt" aus?
Sie könnten ?\w
entergefolgt von verwendenA
?\w
sucht rückwärts nach dem ersten WortA
versetzt Sie in die letzte Zeile mit Inhalt in den EinfügemodusWenn Sie immer zur letzten Nicht-Whitespace-Zeile einer Datei oder zu einer bestimmten Art von Datei gehen möchten, können Sie eine Autocmd in Ihre einfügen ~/.vimrc
. Zum Beispiel:
:autocmd BufRead *.txt :$;?\S?
Dies geht automatisch zum Ende der Datei und sucht nach einem Zeichen, das kein Whitespace ist, für jede Datei, die dem Glob-Muster entspricht *.txt
. Sie geben dann o
beispielsweise ein, um Sachen hinzuzufügen.
Dieselbe Technik kann verwendet werden, um Leerzeilen zu entfernen, die Sie am Ende von Puffern hinterlassen, wenn Sie sie in die Datei zurückschreiben, wodurch das Problem von vornherein vermieden wird . Zum Beispiel:
:autocmd FileType python autocmd BufWritePre <buffer> :%s/\(\n\s*\)\+\%$//e
Dieses Beispiel gilt nur für Dateien, die als Dateityp Python erkannt werden (z. B. das Suffix .py).
Ich habe noch nie in Vim gearbeitet, aber ich werde etwas Logik vorschlagen: