Почему я получаю ошибку «E488: Трейлинг-символы» в этой пользовательской команде?

17

У меня есть, ~/.vimrcчто содержит только это:

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

(конечно, мой реал .vimrcболее сложный, но я воссоздал этот маленький тестовый пример без плагинов и т. д.)

Я собираюсь написать функцию, которая поддерживает создание нового файла в соответствии с шаблоном. Некоторые элементы ввода будут запрошены у пользователя vi, например, имя файла.

Функция еще не настолько сложна (недосказанность!) - все, что она делает, это спрашивает имя файла. Когда я использую команду NewFileиз командной строки vi, она запускается, но когда я ввожу имя файла и нажимаю Enter, я получаю сообщение об ошибке:

E488: Trailing characters

Это почему? Что я делаю неправильно?

Эндрю Ферье
источник

Ответы:

22

Удалите трейлинг, <cr> который необходим только для отображений, но не для команд.

Кристиан Брабандт
источник
Ах, отлично, спасибо! Я скопировал это заклинание из карты - кажется, слишком тесно. Благодарю.
Эндрю Ферье
1
Вы решили проблему с тем же сообщением об ошибке в другом контексте. Спасибо ^ _ ^
sensorario