Можно ли отформатировать строку замены при подстановке совпадения с Vim?
Скажем, у меня есть файл с таблицей из 2 столбцов, где записи в каждой строке разделены пробелом. Записи (и строки) не имеют фиксированной ширины. Я хочу отформатировать таблицу так, чтобы все элементы 2-го столбца были выровнены, добавив соответствующее количество пробелов.
Например, приведенная таблица:
A aa
BBBB bbb
CC c
Что я хочу:
A aa
BBBB bbb
CC c
(Обратите внимание, что вкладки не являются решением здесь.)
Команда Vim может выглядеть примерно так:
:0,$ s/\(.*\) \(.*\)/\1(******N)\2/
и (******N) следует заменить кодом форматирования, чтобы поместить 2-й элемент в позицию N-го символа.
ОБНОВЛЕНИЕ 1: Итак, Vim имеет функцию printf() . Может ли он быть использован непосредственно из командной строки для этой цели, или он должен быть включен в сценарий Vim с явным циклом, выполняющимся по всем строкам?
