append()
fügt mehrere Textzeilen unterhalb der als erstes Argument angegebenen Zeile ein. Dies steht im Einklang mit dem append
Befehl ex. Sie können beispielsweise :append
eingeben (und in den Ex-Modus wechseln), dann mehrere Textzeilen schreiben und den Ex-Modus beenden (indem Sie <c-c>
beispielsweise drücken ). Die Zeilen werden nach der Zeile angezeigt, auf der sich Ihr Cursor befindet. Mit anderen Worten append
bedeutet der Befehl: Hänge die Textzeilen an, die ich unter die aktuelle schreibe.
Die VimScript-Funktion append()
ermöglicht Zeilenspezifizierer, was sie nützlicher macht als den Befehl ex. Nützliche Dinge, die häufig vorkommen, sind Möglichkeiten, Textstücke am Anfang und Ende einer Datei einzufügen. zB für LaTeX kann dies nützlich sein:
call append(line('^'), [ '\documentclass[12pt]{article}'
\ , '\begin{document}'])
call append(line('$'), '\end{document}')
Wo line('$')
ist die letzte Zeile in der Datei und line('^')
kehrt immer zurück 0
(und ich hätte das stattdessen ohne Probleme schreiben können).
Um das Verhalten von Vims A
oder anderen Vim-Normalmodusbefehlen abzurufen, können Sie diese verwenden normal
. Es Foo()
kann etwas komplizierter sein, die Ausgabe von am Ende einer Zeile anzuzeigen, indem Sie Folgendes verwenden execute
:
execute ':normal! A' . Foo()
Oder Sie können append verwenden und dann Folgendes ausführen J
:
call append(line('.'), Foo())
normal! Jx
(Beachten Sie, dass dies x
erforderlich ist, um den von generierten Speicherplatz zu entfernen. J
Dies funktioniert jedoch möglicherweise nicht wie erwartet, wenn die von generierte Zeichenfolge Foo()
mit Leerzeichen beginnt.)
A
Modusbefehl zu verwechseln, der tatsächlich Text an die aktuelle Zeile anfügt.