
Предположим, вы хотите выбрать строки, которые содержат: необязательные пробелы, за которыми следует положительное целое число, за которым следует еще больше необязательных пробелов.
Вот регулярное выражение, которое подойдет для этого:
:g/^\s*\d\+\s*/
Оператор *
не экранируется, в то время как +
есть. Экранирование нарушает регулярное выражение . *
То же самое происходит и при отмене экранирования.+
Есть ли этому хорошее объяснение? В идеале что-то, что сделает правило интуитивно понятным. В vim мне всегда было трудно писать регулярные выражения из-за необычных правил экранирования, поэтому я бы хотел получить какое-то понимание, которое заставит все щелкнуть для меня.
решение1
Это по историческим причинам, и если это изменить, то совместимость будет нарушена. Однако вы можете добавить к шаблону префикс , чтобы \v
включить "очень волшебный", так что вам не придется делать специальное экранирование. Смотрите :help /\v
.