Как я дергаю все согласующие отрезки длинной линии в один буфер?

Если это должно иметь хороший перфект, я предполагаю, что это происходит много. Если так, возьмите свое решение и сделайте это несколько миллионов раз и время это. Я подозреваю то, что Вы имеете, лучше, чем другие решения, потому что Вы не создаете новый собравший "мусор" объект, который должен быть очищен, и Вы не можете сделать копию строки, не выполняя итерации по нему так или иначе.

50
задан daotoad 24 September 2009 в 14:12
поделиться

2 ответа

:help registers
:help quote_alpha

Задайте заглавную букву в качестве имени регистра для добавления к нему, например : yank A .

13
ответ дан 7 November 2019 в 10:45
поделиться

: g / ^ match / yank A

Это запускает глобальную команду для восстановления любой строки, которая соответствует ^ match , и помещения ее в регистр a . Поскольку a - это верхний регистр, вместо того, чтобы просто установить регистр на значение, он будет добавлен к нему. Поскольку глобальная команда запускает команду для всех совпадающих строк, в результате вы получите все строки, добавленные друг к другу.

Это означает, что вы, вероятно, захотите сбросить регистр на пустую строку перед запуском: : let @a = "" .

И, естественно, вы можете использовать то же самое с любым именованным регистром.

88
ответ дан 7 November 2019 в 10:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: