Как я могу рекурсивно использовать Global в VIM? - PullRequest
3 голосов
/ 10 апреля 2009

Что-то не так в ": g-2-g / 3 /" или рекурсия в глобале просто отсутствует? Я не могу понять причину ошибки:

E147: Невозможно сделать: глобальная рекурсия

Как я могу получить рекурсивный глобальный поиск в VIM?

[Начальное предложение Нейла с оператором \ | ]

g/1.*2\|2.*1/

Недостатком является то, что комбинации расширяются на n чисел. Для трех чисел количество комбинаций равно 3! (= 6) это

g/1.*2.*3\|2.*1.*3\|3.*1.*2\|1.*3.*2\|2.*3.*1\|3.*2.*1/ 

Для n чисел количество комбинаций равно n!.

[Решение с оператором \ &]

Брайан Карпер и Нил Баттерворт нашли решение. Большое спасибо за них!

g/.*1\&.*2\&.*3/

Это для всей строки:

g/.*1\&.*2\&.*3\&.*/

1 Ответ

3 голосов
/ 10 апреля 2009

Новая информация: Это делает то, что вы хотите - последовательность "\ &" является оператором "и":

g/.*1\&.*2\&.*3/

объяснение Брайана Карпера (см. Комментарии и еще раз спасибо):

/1\&2/ не будет работать, потому что оба ветви должны совпадать позиция ". /.*1\&.*2/ пусть совпадают закрепить себя в передней части линии а затем расширить, сколько ему нужно чтобы найти номера

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