传递变量以在vimscript中休眠

dev*_*vid 3 vim

多年来我一直在使用vim来计算,但我从来没有真正学过vimscript.我现在正在尝试.

无论如何,我想将不同的时间传递给睡眠功能.我也希望在传递之前操纵该值.这是一个简单的例子.

function! wait(mil)
    let timetowait = mil . "m"
    sleep timetowait
endfunction
Run Code Online (Sandbox Code Playgroud)

即使我尝试使用l来为timetowait添加前缀:它说"无效的参数:l:timetowait".

将变量值传递给睡眠的正确方法是什么?

Daa*_*ker 6

有几个问题:

  • 您的方法应以大写名称开头
  • 你需要访问你的论点 a:
  • 你必须在睡觉时间和 m
  • 你必须使用间接执行睡眠 execute

这是一个如何做到这一点的例子:

function! Wait(mil)
    let timetowait = a:mil . " m"
    exe 'sleep '.timetowait
endfunction 
Run Code Online (Sandbox Code Playgroud)