Warum erhalte ich bei diesem benutzerdefinierten Befehl den Fehler "E488: Nachgestellte Zeichen"?

17

Ich habe eine ~/.vimrc, die genau das enthält:

function! NewFile()
        let filename = input("Filename:")
endfunction
command NewFile :call NewFile()<cr>

(Natürlich ist mein real .vimrckomplexer, aber ich habe diesen kleinen Testfall ohne Plugins usw. neu erstellt.)

Meine Absicht ist es, eine Funktion zu schreiben, die das Erstellen einer neuen Datei anhand einer Vorlage unterstützt. Einige Eingabefelder werden vom vi-Benutzer abgefragt, z. B. der Name der Datei.

Die Funktion ist noch nicht so ausgefeilt (Understatement!) - es wird nur nach dem Dateinamen gefragt. Wenn ich den Befehl NewFileüber die vi-Befehlszeile verwende, wird er gestartet. Sobald ich den Dateinamen eingebe und die Eingabetaste drücke, wird der folgende Fehler angezeigt:

E488: Trailing characters

Warum das? Was mache ich falsch?

Andrew Ferrier
quelle

Antworten:

22

Entfernen Sie das Trailing, <cr> das nur für Zuordnungen, nicht aber für Befehle benötigt wird.

Christian Brabandt
quelle
Ah, perfekt, danke! Ich hatte diese Beschwörung aus einem Mapping kopiert - ein bisschen zu eng, wie es scheint. Vielen Dank.
Andrew Ferrier
1
Sie haben ein Problem mit derselben Fehlermeldung in einem anderen Kontext gelöst. Vielen Dank ^ _ ^
Sensorario