У меня есть строка с 25,9 миллионами символов, около 2,4 миллионов из которых являются запятыми, и я хочу удалить все запятые из строки.
Если я использую команду :s/,//g
, она создает регулярное выражение, которое многократно выполняется в строке, пока не останется запятых. Кажется, это происходит за время O (n ^ 2) на основе эмпирических измерений. И поэтому мое регулярное выражение в этой строке длится более часа.
Использование макроса бесполезно из-за возникающей перерисовки, которая, как правило, стоит дорого, когда вы находитесь в середине такой длинной строки.
Разделение строк кажется наилучшим вариантом, но из-за структуры файла мне нужно создать новый буфер, чтобы сделать это чисто.
Да, есть гораздо лучшие способы вывода такого большого количества данных, которые не включают CSV с нелепым количеством столбцов, давайте предположим, что я не генерировал их, но у меня есть, и я должен с ними работать.
Существует ли асимптотически быстрый способ простого удаления каждого вхождения определенного символа из строки в vim?