2013-04-06 73 views
2

我确定这可能是一个简单的问题,但我卡住了。我需要编写一个小Vim脚本程序,要求用户输入。如果用户输入一个整数,则程序继续。如果他们不这样做,那么程序会循环回来并要求他们重试。如果他们输入'X',程序退出。如何确认用户输入了整数?如何让Vim测试用户输入是否是整数?

回答

1

您可以使用str2nr()将字符串转换为数字,并比较输入字符串。 VimL解析器会将字符串转换为数字进行比较,并且str2nr()将首先强制字符串变成数字格式。

if input == str2nr(input) 
    echo "input is a number" 
endif 
3

可以使用type()功能:

if type(myvar) == type(0) 
    echo "myvar is a number" 
endif 

:h type()

4

其他答案已经提供了很好的解决方案;我只想添加更一般的验证以及完整性的正则表达式:

if input =~# '^\d\+$' 
    echo "input is a number" 
endif