vim语法匹配错误([A-Z]匹配所有字母字符)

时间:2011-12-17 23:20:46

标签: regex vim syntax

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

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

理论上,它应该匹配任何以空格为前缀并以大写字母开头的字母字符集。当我在Ubuntu 11.11上使用vim 7.3运行它时,它应该正常工作。但是,当我将.vimrc发送到在CentOS 5.6上运行vim 7.0的服务器时,它匹配以空格为前缀的所有单词,而不仅仅是以大写字母开头的单词。

我一直在寻找几个小时来解决这个问题,但我很困惑。我尝试了[[:upper:]]而不是[A-Z],但它得出了相同的结果。使用/[A-Z]/[[:upper:]]正确搜索仅选择大写字符。在bash中运行ls | grep "[A-Z]"只会突出显示带有大写字符的文件。

2 个答案:

答案 0 :(得分:4)

我的下一个最佳猜测(在ignorecase之后)将是语法高亮脚本本身配置中的错误:

某些语言不区分大小写,例如Pascal。其他人,如C,是 区分大小写。您需要通过以下方式告诉您具有哪种类型 命令:

:syntax case match
:syntax case ignore

您是否可以尝试将:syntax case match专门添加到混音(或虚假ignore来自的地方)时会发生什么?

答案 1 :(得分:1)

您是否意外启用了ignorecase?你对/\s\C[A-Z]\c[A-Z]*/有什么看法?