Este es mi texto:necesidad de duplicar texto en cada línea y añadir signo igual y el prefijo para que
xxx
yyy
zzz
me gustaría que fuera este texto en su lugar:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Es esto posible Qué hacer en Vim?
Este es mi texto:necesidad de duplicar texto en cada línea y añadir signo igual y el prefijo para que
xxx
yyy
zzz
me gustaría que fuera este texto en su lugar:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Es esto posible Qué hacer en Vim?
También puede utilizar la forma más simple:
:%s/.*/& = C.&
Seleccione el texto, a continuación, pulse :
y escriba
s/\(.*\)/\1 = C.\1/
Tipo esto:
:%s/\(.*\)/\1 = c.\1/g
Desglose:
%
- trabajo en todas las líneas\(.*\)
- captura todos los personajes de un grupo ("grupo 1")s/PATTERN/REPLACEMENT/g
- hacer una sustitución de cadenas\1
en el patrón de sustitución - referirse al grupo emparejadono necesita ni '^' ni '$'. –
@yi_H: buen punto – orip
Dependiendo de si el contenido que se va a duplicar se encuentra realmente al principio de la línea, puede ser útil rellenar '\ s * \ zs' justo después del primer'/'para que el espacio en blanco inicial es preservado –
Impresionante. Corrección leve: ':% s /.*/& = C. & /'. Acaba de agregar el cierre '/'. – mpettis
@mpettis no es necesario en absoluto si no tiene banderas :-D Es seguramente más completo, pero lo dejé aquí por brevedad – sidyll
Necesito algo como esto para líneas múltiples: '% string%' into 'string =% string% ' –