如何让 Vim 检测用户输入是否为整数?

7

我相信这可能是一个简单的问题,但我卡住了。我需要编写一个小的Vim脚本程序,从用户那里请求输入。如果用户输入一个整数,则程序继续执行。如果他们没有这样做,则程序循环回来并要求他们重试。如果他们输入'X',则程序退出。如何验证用户是否输入了一个整数?

2个回答

12
其他答案已经提供了好的解决方案; 我只想添加一种更通用的正则表达式验证方法来完整回答这个问题:
if input =~# '^\d\+$'
    echo "input is a number"
endif

5
您可以使用type()函数:
if type(myvar) == type(0)
  echo "myvar is a number"
endif

请参见:h type()

1
如果 OP 所指的 "用户输入" 是指 input() 函数,那么这种方法行不通,因为它返回的是字符串。 - Rich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接