regex - por - salir del editor vi
¿Cómo puedo agregar una cadena al final de cada línea en Vim? (10)
... y anteponer (agregar el comienzo de) cada línea con *,
%s/^/*/g
Quiero agregar *
al final de cada línea en Vim.
Probé el código sin éxito
:%s//n/*/n/g
Creo que usar el modo de bloqueo visual es un método mejor y más versátil para tratar este tipo de cosas. Aquí hay un ejemplo:
Esta es la primera línea.
Este es el segundo.
El tercero.
Para insertar "Hola mundo". (espacio + portapapeles) al final de cada una de estas líneas:
- En un carácter en la primera línea, presione Ctrl-V (o Ctrl-Q si Ctrl-V está pegado).
- Presiona jj para extender el bloque visual en tres líneas.
- Presione $ para extender el bloque visual hasta el final de cada línea. Presiona A, luego espacio y luego escribe Hello world. + luego Esc.
El resultado es:
Esta es la primera línea. Hola Mundo.
Este es el segundo. Hola Mundo.
El tercero. Hola Mundo.
(ejemplo de http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines )
Incluso más corto que el comando de búsqueda:
:%norm A*
Esto es lo que significa:
% = for every line
norm = type the following commands
A* = append ''*'' to the end of current line
Realmente no necesitas la g
al final. Así se convierte en:
:%s/$/*
O si solo quiere el *
al final de, diga las líneas 14-18:
:14,18s/$/*
o
:14,18norm A*
Si desea agregar Hello world al final de cada línea:
:%s/$/HelloWorld/
Si desea hacer esto para un número específico de líneas, por ejemplo, del 20 al 30 use:
:20,30s/$/HelloWorld/
Si desea hacer esto al inicio de cada línea, use:
:20,30s/^/HelloWorld/
También:
:g/$/norm A*
También:
gg<Ctrl-v>G$A*<Esc>
Una opción es:
:g/$/s//*
Esto encontrará cada ancla de extremo de línea y la sustituirá por *
. Digo "sustituto" pero, en realidad, es más un apéndice ya que el ancla es una cosa especial en lugar de un personaje regular. Para más información, vea Poder de g - Ejemplos .
:%s/$//*/g
Deberia trabajar. Entonces, debería :%s/$/*/g
como señala MrWiggles correctamente.
:%s//n/*/r/g
La primera es correcta en cualquier otro lugar, pero Vim tiene que tener un manejo de nueva línea diferente por alguna razón.
%s//s*$//*/g
Esto hará el truco y asegurará que los espacios iniciales sean ignorados.