Мне не совсем понятно, что вы хотите, но в Vim вы можете сделать что-то вроде этого:
:for i in range(line('$')) | call append(i+i, printf("this is line %d:", i+1)) | endfor
Причина, по которой я использую « i+i
», заключается в том, что при вставке строк в буфер номера строк меняются, и это исправляет это. (Если у вас есть другая "начальная точка" в вашем диапазоне, ваш алгоритм коррекции должен быть более сложным.)
Или, если вы хотите изменить существующие строки в буфере:
:for i in range(1, line('$')) | call setline(i, printf("this is line %2d: %s", i, getline(i))) | endfor
Конечно, если вы не хотите менять буфер, а просто печатаете на экран, используйте "echo" вместо "call" и удалите куски append() / setline() со всех сторон printf().
Увидеть:
:help :for
:help :call
:help :echo
:help range()
:help line()
:help append()
:help setline()
:help getline()
:help printf()