[英]How Can I Search for a Character in a String in Vim Script
我正在 Vim 脚本中编写一个 function ,该脚本采用一个参数。 它可以是逗号分隔的数字列表(例如1,2,3
),也可以是数字范围(例如1-3
)。 我想检查参数中的第二个字符是否是-
符号,以便我可以知道它是一个数字范围。 这是代码:
function! MyFunction(...)
if second_char(a:1) == '-'
echo "Hyphen"
else
echo "Comma"
endif
endfunction
command -nargs=* MyFunction call MyFunction(<f-args>)
我阅读了search
function 的文档,但老实说真的很令人困惑。
所以它真的就像使用括号一样简单。 这是一个示例,其中 MY_STRING 是您正在使用的字符串:
if MY_STRING[1] == '-'
echo "Hyphen"
else
echo "Comma"
endif
您可以使用正则表达式来确保参数正确。
使用第二个字符非常脆弱,因为您的数字可以假定值大于 9,请参见下面的示例:
" let s:myVar = "10,20,30"
let s:myVar = "50-55"
if s:myVar =~ '\d\+,\d\+'
echo "are comma separated values"
elseif s:myVar =~ '\d\+-\d\+'
echo "is a range"
else
echo "the argument is invalid"
endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.