我想:substitute(...)
在 vim 中以区分大小写的方式使用,但没有这样做。
这是我要操作的变量:
let s:Var = 'foo BAR baz'
我当然可以明确设置noic
,以便在以下行BAR
中(s:Var)不被替换:
set noic
let s:S1 = substitute(s:Var, 'bar', '___', '')
" print foo BAR baz
echo s:S1
相反,如果ic
设置了,BAR
当然会被替换:
set ic
let s:S2 = substitute(s:Var, 'bar', '___', '')
" print foo ___ baz
echo s:S2
现在,我想我可以使用I
标志:substitute
来使其区分大小写,但事实并非如此:
let s:S3 = substitute(s:Var, 'bar', '___', 'I')
" print foo ___ baz
" instead of the expected foo BAR baz
echo s:S3
该I
标志的帮助内容如下:
[I] Don't ignore case for the pattern. The 'ignorecase' and 'smartcase'
options are not used.
{not in Vi}
我对这些行的理解是,使用该标志,不应替换 BAR。