繁体   English   中英

如何在 Vim 脚本中搜索字符串中的字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM