Para fatorar uma função (que é útil quando os comandos de mapeamento se tornam mais longos), a única coisa que você precisa considerar é que as teclas especiais como <Esc>
que funcionam no lado direito do mapeamento não trabalhar dentro da função; você precisa usar :execute
com aspas duplas e escapar delas:
function Linecomment()
execute "normal ^i/*\<ESC>$a*/\<ESC>"
endfunction
command Linecomment call Linecomment()
Para comentar a partir da posição do cursor, basta soltar o movimento ^
no início.
No entanto, para uma solução de comentários realmente poderosa e robusta, recomendo usar um dos plug-ins populares: