Как я могу рекурсивно использовать Global в VIM?

StackOverflow https://stackoverflow.com/questions/737078

  •  09-09-2019
  •  | 
  •  

Вопрос

Что-то не так в ":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\&.*/
Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top