关于正则表达式:vim语法匹配错误([A-Z]匹配所有字母字符)

vim syntax match is wrong ([A-Z] is matching all alphabetic characters)

我有一个.vimrc文件,其中包含以下行:

1
syntax match proper /\s[A-Z][a-zA-Z]*/

理论上,它应该匹配任何一组以空格为前缀并以大写字母开头的字母字符。当我在Ubuntu11.11上使用Vim7.3运行它时,它会正常工作。但是,当我将.vimrc发送到一个在Centos5.6上运行vim 7.0的服务器时,它匹配的是所有以空格开头的单词,而不仅仅是以大写字母开头的单词。

我已经找了几个小时来解决这个问题,但我还是感到困惑。我试过用[[:upper:]]代替[A-Z],但结果是一样的。使用/[A-Z]/[[:upper:]]正确搜索只选择大写字符。在bash中运行ls | grep"[A-Z]"只突出显示具有大写字符的文件。


我的下一个最佳猜测(在ignorecase之后)是在突出显示脚本本身的语法配置中出现错误:

有些语言不区分大小写,如Pascal。其他的,如c,是区分大小写。你需要知道你有以下哪种类型的命令:

1
2
:syntax case match
:syntax case ignore

你能试一下当你特别添加:syntax case match到混合物中时会发生什么情况吗(或者是假ignore的来源地)?


你有没有不小心打开了ignorecase?你用/\s\C[A-Z]\c[A-Z]*/能得到什么?