Команда :put
вставляет содержимое регистра (или, в качестве особого случая, который вы здесь используете, результат вычисления выражения, здесь: статическая строка) буквально в буфер. Его нельзя использовать для воспроизведения команд.
Поскольку ваши команды нормальны и отображаются режимы вставки, вы можете использовать :normal!
выполнить их. Сопоставление клавиш будет непосредственно принимать их на правой стороне; как обычно :command
работают в режиме Ex, вам нужно :normal
переводчик из Ex в обычный режим.
:command! Hcom normal! 0i<!-- ^[A -->^[
Встроенный ^[
должен быть буквальными символами Escape; Я бы порекомендовал написать их в :help key-notation
; тогда вам нужны двойные кавычки и :execute
для интерпретации строки:
:command! Hcom execute "normal! 0i<!-- \<Esc>A -->\<Esc>"
Прежде чем вкладывать гораздо больше энергии в настройку этой команды, обратите внимание, что есть несколько плагинов для комментариев, которые делают это очень хорошо, и они являются общими (и часто расширяемыми), поэтому они работают для любого типа файла: