Dlaczego pojawia się błąd „E488: końcowe znaki” w tym niestandardowym poleceniu?

17

Mam taki, ~/.vimrcktóry zawiera tylko to:

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

(oczywiście moja rzeczywistość .vimrcjest bardziej złożona, ale odtworzyłem ten mały przypadek testowy bez wtyczek itp.)

Moim zamiarem jest napisanie funkcji, która obsługuje tworzenie nowego pliku zgodnie z szablonem. Niektóre elementy wejściowe będą pytane od użytkownika vi, takie jak nazwa pliku.

Ta funkcja nie jest jeszcze tak zaawansowana (niedopowiedzenie!) - wystarczy poprosić o nazwę pliku. Kiedy używam polecenia NewFilez wiersza polecenia vi, zaczyna się, ale po wprowadzeniu nazwy pliku i naciśnięciu klawisza Enter pojawia się błąd:

E488: Trailing characters

Dlaczego? Co ja robię źle?

Andrew Ferrier
źródło

Odpowiedzi:

22

Usuń końcowe, <cr> które jest potrzebne tylko dla mapowań, ale nie dla poleceń.

Christian Brabandt
źródło
Ach, idealnie, dziękuję! Skopiowałem to zaklęcie z mapowania - wydaje się trochę zbyt blisko. Dzięki.
Andrew Ferrier,
1
Rozwiązałeś problem z tym samym komunikatem o błędzie w innym kontekście. Dziękuję ^ _ ^
sensorario