Я хотел добавить строку после каждых 3 строк в файле (около 1000 строк) с помощью редактора vim. Может кто-нибудь помочь мне?
Спасибо, Алиша
Я хотел добавить строку после каждых 3 строк в файле (около 1000 строк) с помощью редактора vim. Может кто-нибудь помочь мне?
Спасибо, Алиша
существует определенное для vim регулярное выражение, чтобы сделать это
:%s/.*\n.*\n.*\n/\0\r/g
Изменить: если вы хотите что-то еще, кроме новой строки, просто поместите текст перед \r (правильно выведенное регулярное выражение, если оно содержит некоторые символы регулярных выражений)
Вы можете использовать macro. Полный процесс выглядит следующим образом:
qq " start recording to register q (you could use any register from a to z)
o " insert an empty line below cursor
<Esc> " switch to normal mode
jjj " move the cursor 3 lines downward
q " stop recording
Затем просто перейдите в стартовую строку и введите [email protected]
, чтобы выполнить ваш макрос 1000 раз.
" insert a blank line every 3 lines
:%s/\v(.*\n){3}/&\r
: .............. command
% .............. whole file
s .............. replace
/ .............. start pattern that we will replace
\v ............. very magic mode, see :h very-magic
(.*\n) ......... everything including the line break
{3} ............ quantifier
/ .............. start new pattern to replace
& .............. corresponds to the pattern sought in (.*\n)
\r ............. add line break
источник: http://www.rayninfo.co.uk/vimtips.html
Я бы сделал это:
:%s/^/\=(line(".")%4==0?"\n":"")/g
это работает, если ваше требование изменилось на "* добавить новую пустую строку каждые 700 строк * s":) вы просто измените "4"
P.S. если мне это нужно, я не сделаю этого в vim. sed, awk, может сделать это намного проще.