Réponses:
La executefonction prend une chaîne comme argument, elle développe la chaîne et l'exécute avec une commande ex régulière. Ainsi vous pouvez faire:
function! MyFunction(someArg)
execute "normal! ". a:someArg. "l"
endfunction
Le .est un opérateur standard vimscript à cordes concaténer.
executepeut être raccourci exe.
Voir :h :execute
EDIT J'ajouterai un point sur le commentaire de @Christian Brabandt sur la concaténation avec a ..
Le doc dit:
Plusieurs arguments sont concaténés, avec un espace entre les deux. Pour éviter l'espace supplémentaire, utilisez le "." pour concaténer des chaînes en un seul argument.
La commande pourrait donc être:
execute "normal!" a:someArg . "l"
La commande exécutée sera:
normal! 2l
exe "norm!" variable