vim - siguiente - usar vi
Cómo agregar una línea después de cada pocas líneas en vim (4)
Puedes usar una macro . El proceso completo se ve así:
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
Luego simplemente muévase a la línea de inicio y escriba 1000@q
para ejecutar su macro 1000 veces.
Quería agregar una línea después de cada 3 líneas en un archivo (con aproximadamente 1000 líneas) usando el editor vim. ¿Alguien me puede ayudar?
Gracias alisha
Yo haría esto:
:%s/^//=(line(".")%4==0?"/n":"")/g
esto funciona si su requisito cambió a "* agregar una nueva línea en blanco cada 700 líneas * s" :) simplemente cambia el "4"
PD: si necesito hacer esto, no lo haré en vim. Sed, awk, podría hacerlo mucho más simple.
hay una expresión regular específica de vim para hacer eso
:%s/.*/n.*/n.*/n//0/r/g
- % s es el comando vim ex para sustituir en todo el archivo
- . * / n es una línea que incluye el final de la línea
- / 0 es la expresión completa
- / r vim manera de decir agregar una nueva línea (no / n como uno esperaría)
Edición: si desea algo más que una nueva línea, simplemente coloque el texto delante de la / r (se escaparon correctamente las expresiones regulares, si contiene algunos caracteres de expresiones regulares)
" 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