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