Pourquoi est-ce que j'obtiens une erreur «E488: Trailing characters» sur cette commande personnalisée?

17

J'en ai un ~/.vimrcqui contient juste ceci:

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

(bien sûr mon réel .vimrcest plus complexe, mais j'ai recréé ce petit cas de test sans plugins etc.)

Mon intention est d'écrire une fonction qui prend en charge la création d'un nouveau fichier selon un modèle. Certains éléments d'entrée seront demandés à l'utilisateur vi, comme le nom du fichier.

La fonction n'est pas encore aussi sophistiquée (euphémisme!) - Tout ce qu'elle fait, c'est demander le nom du fichier. Lorsque j'utilise la commande à NewFilepartir de la ligne de commande vi, elle démarre, mais une fois que j'entre le nom de fichier et appuie sur Entrée, j'obtiens l'erreur:

E488: Trailing characters

Pourquoi donc? Qu'est-ce que je fais mal?

Andrew Ferrier
la source

Réponses:

22

Supprimez la fin <cr> qui n'est nécessaire que pour les mappages, mais pas pour les commandes.

Christian Brabandt
la source
Ah, parfait, merci! J'avais copié cette incantation d'une cartographie - un peu trop près, semble-t-il. Merci.
Andrew Ferrier
1
Vous m'avez résolu un problème avec le même message d'erreur avec un contexte différent. Merci ^ _ ^
sensorario