我有一个 .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:]]
正确搜索仅选择大写字符。运行ls | grep "[A-Z]"
在 bash 中仅突出显示带有大写字符的文件。
最佳答案
我的下一个最佳猜测(在ignorecase之后)将是语法突出显示脚本本身的配置错误:
有些语言不区分大小写,例如 Pascal。其他的,比如C, 区分大小写。您需要通过以下方式判断您的类型 命令:
:syntax case match
:syntax case ignore
你能尝试一下当你专门添加 :syntax case match
到混合中时会发生什么(或者找出虚假的 ignore
的来源)吗?
关于regex - vim 语法匹配错误([A-Z] 匹配所有字母字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548662/