Respuestas:
La executefunción toma una cadena como argumento, expande la cadena y la ejecuta como un comando ex regular. Así puedes hacer:
function! MyFunction(someArg)
execute "normal! ". a:someArg. "l"
endfunction
El .es un operador vimscript estándar para concatenar cadenas.
executese puede acortar a exe.
Ver :h :execute
EDITAR Agregaré un punto sobre el comentario de @Christian Brabandt sobre la concatenación con a ..
El documento dice:
Múltiples argumentos están concatenados, con un espacio en el medio. Para evitar el espacio extra, use el "." operador para concatenar cadenas en un argumento.
Entonces el comando podría ser:
execute "normal!" a:someArg . "l"
El comando ejecutado será:
normal! 2l
exe "norm!" variable