Можно ли отформатировать строку замены при подстановке совпадения с 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 с явным циклом, выполняющимся по всем строкам?