Ответы:
executeФункция принимает строку в качестве аргумента, он расширяет строку и выполнить ее аа регулярную команду экс. Таким образом, вы можете сделать:
function! MyFunction(someArg)
execute "normal! ". a:someArg. "l"
endfunction
Это .стандартный оператор vimscript для объединения строк.
executeможно сократить до exe.
Видеть :h :execute
РЕДАКТИРОВАТЬ Я добавлю пункт о комментарии @Christian Brabandt о конкатенации с ..
Док говорит:
Несколько аргументов объединяются с пробелом между ними. Чтобы избежать лишних пробелов, используйте "." оператор для объединения строк в один аргумент.
Таким образом, команда может быть:
execute "normal!" a:someArg . "l"
Выполненная команда будет:
normal! 2l
exe "norm!" variable