2013-11-20 2 views
0

Я хочу, чтобы вставить последовательность цифр, но мне нужно повторять каждое число в п строк, я имею в виду:Вставьте тот же символ в п-х строк с Vim

Original file  New file 
1     1,1 
2     1,2 
3     1,3 
4     2,4 
5     2,5 
6     2,6 
7     3,7 
8     3,8 
9     3,9 
+0

у меня нет времени, чтобы сделать исследование для правильного ответа только сейчас, но посмотрите на макросы: http://vim.wikia.com/wiki/Macros. Они позволяют записывать последовательность команд и повторять их. –

+0

проще сделать с 'awk' – abasu

+0

Как я могу использовать awk для этого? – heinerrene

ответ

2

Вы можете использовать :help sub-replace-expr. Простой .* будет соответствовать номеру, а затем вы можете сцепить результат, используя submatch(0) для работы с матчем:

:%s#.*#\=(submatch(0)+2)/3 . ',' . submatch(0)# 
+0

Спасибо! Он работает как шарм – heinerrene

+0

Привет Инго, у меня есть еще один вопрос. Теперь мне нужно вставить последовательность, пока номер, который я ранее вставил, не изменится. Я имею в виду, теперь я хочу вставить последовательность 1 2 3 1 2 3 1 2 3. – heinerrene

+0

Попытайтесь вычислить математику; Оператор _modulo_ в Vim является «числом% 3». –

Смежные вопросы