Неверное совпадение синтаксиса vim ([A-Z] соответствует всем буквенным символам) - PullRequest
3 голосов
/ 18 декабря 2011

У меня есть файл .vimrc, который содержит следующую строку:

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

Теоретически, он должен соответствовать любому набору букв, который начинается с пробела и начинается с заглавной буквы. Это работает как надо, когда я запускаю его с vim 7.3 в Ubuntu 11.11. Однако, когда я отправил .vimrc на сервер с vim 7.0 в CentOS 5.6, он соответствует всем словам с префиксом пробела, а не только словам, начинающимся с заглавной буквы.

Я искал несколько часов, чтобы понять это, но я сбит с толку. Я пробовал [[:upper:]] вместо [A-Z], но это дало те же результаты. При правильном поиске /[A-Z] и /[[:upper:]] выбираются только заглавные буквы. Запуск ls | grep "[A-Z]" в bash только выделяет файлы с заглавными буквами.

Ответы [ 2 ]

4 голосов
/ 18 декабря 2011

Моим следующим лучшим предположением (после игнорирования) будет ошибка в конфигурации самого сценария подсветки синтаксиса:

Некоторые языки не чувствительны к регистру, например, Pascal.Другие, такие как C, чувствительны к регистру.Вам нужно указать, какой у вас тип, с помощью следующих команд:

:syntax case match
:syntax case ignore

Не могли бы вы попробовать, что произойдет, если вы специально добавите :syntax case match к миксу (или определите место, откуда исходит ложное ignore)?

1 голос
/ 18 декабря 2011

Вы случайно включили ignorecase? Что вы получаете с /\s\C[A-Z]\c[A-Z]*/?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...