Я хотел добавить строку после каждых 3 строк в файле (имея около 1000 строк) с помощью редактора vim. Кто-нибудь может мне помочь?Как добавить строку после каждых нескольких строк в vim
Спасибо, Alisha
Я хотел добавить строку после каждых 3 строк в файле (имея около 1000 строк) с помощью редактора vim. Кто-нибудь может мне помочь?Как добавить строку после каждых нескольких строк в vim
Спасибо, Alisha
есть ВИМ конкретным регулярное выражение, чтобы сделать это
:%s/.*\n.*\n.*\n/\0\r/g
Редактировать: если вы хотите что-либо еще, кроме новой строки, просто поместите текст перед \ r (правильно регулярное выражение спаслось, если он содержит несколько регулярных выражения символов)
Я бы сделать это:
:%s/^/\=(line(".")%4==0?"\n":"")/g
это работает, если ваше требование изменено на «* добавить новую пустую строку каждые 700 строк * с» :) вы просто меняете «4»
P.S. если мне это нужно, я не сделаю этого в vim. sed, awk, могли сделать это намного проще.
Можете ли вы объяснить для меня, что означает каждый cmd? – Alisha
'^' Представляет начало строки. Мы получаем Mod of число текущей строки на 4, если оно истинно (равно нулю), оно добавляет новую строку в качестве заместителя, иначе ничего не использует "". – SergioAraujo
Вы можете использовать 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 раз.
Последняя команда будет выглядеть так: 'qqoThis - это строка, которая добавляет
@Sam Vim перестанет запускать макрос, как только он ударит в конец файла. –
Это также удобно, если вы хотите что-либо сделать с * концом * строки, а не вставлять новую строку перед 4-й строкой или аналогичной. – HitScan
" insert a blank line every 3 lines
:%s/\v(.*\n){3}/&\r
: .............. command
% .............. all 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
ВИМ также имеет '\ {п \}' ', что соответствует N' мест где шаблон. Например, я использовал это, чтобы вставить слово «GO» на каждую 100-ю строку (поскольку ввод '. * \ N' 100 раз утомительно):'% s/\ (. * \ N \) \ {100 \}/\ 0GO \ г/G'. Или, включив очень важный режим ('\ v') в регулярном выражении, он становится немного проще читать:'% s/\ v (. * \ N) {100}/\ 0GO \ r/' –