如何在Vim Script中判断字符串第二个字符是否为连字符?
解决Vim Script中判断参数第二个字符的问题
要获取字符串的第二个字符,Vim Script中没有second_char函数,你可以通过字符串索引或者strpart()函数实现,以下是两种可行方案:
方案1:直接使用字符串索引
Vim Script的字符串支持通过[索引]访问单个字符,注意索引从0开始,因此第二个字符对应索引1:
function! MyFunction(...) " 先判断参数是否足够长,避免索引越界 if len(a:1) < 2 echo "参数格式不正确" return endif if a:1[1] == '-' echo "Hyphen" else echo "Comma" endif endfunction command -nargs=* MyFunction call MyFunction(<f-args>)
方案2:使用strpart()函数
strpart()的语法是strpart(字符串, 起始位置, 截取长度),我们可以从位置1开始截取1个字符来获取第二个字符:
function! MyFunction(...) if len(a:1) < 2 echo "参数格式不正确" return endif if strpart(a:1, 1, 1) == '-' echo "Hyphen" else echo "Comma" endif endfunction command -nargs=* MyFunction call MyFunction(<f-args>)
额外说明
- 加入
len(a:1) < 2的判断是为了避免当参数过短(比如只有单个字符)时出现索引越界错误 - 你的场景中参数是数字列表或范围,正常输入应该满足长度要求,但加上判断能让函数更健壮
内容的提问来源于stack exchange,提问作者Amarakon
相关产品推荐
相关产品推荐

