To jest mój tekst:Potrzeba powielić tekst w każdym wierszu i dodać znak równości i przedrostek do niego
xxx
yyy
zzz
chciałbym go mieć ten tekst zamiast:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Czy to możliwe zrobić w Vim?
To jest mój tekst:Potrzeba powielić tekst w każdym wierszu i dodać znak równości i przedrostek do niego
xxx
yyy
zzz
chciałbym go mieć ten tekst zamiast:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Czy to możliwe zrobić w Vim?
Można również użyć prostszej formie:
:%s/.*/& = C.&
Zaznacz tekst, a następnie naciśnij :
i wpisz
s/\(.*\)/\1 = C.\1/
Ten typ:
:%s/\(.*\)/\1 = c.\1/g
Podział:
%
- prace na wszystkich liniach\(.*\)
- przechwytywania wszystkie postacie w grupie („Grupa 1”)s/PATTERN/REPLACEMENT/g
- zrobić podstawienie ciąg\1
w strukturze wymiany - patrz dopasowanej grupieNie potrzebujesz "^" lub "$". –
@yi_H: dobry punkt – orip
Zależnie od tego, czy treść, która ma być powielona, jest rzeczywiście na początku wiersza, może być przydatny do wypychania '\ s * \ zs' tuż po pierwszym'/'tak, aby wiodący biały znak jest zachowany. –
Awesome. Niewielka poprawka: ':% s /.*/& = C. &. Właśnie dodano zamknięcie '/'. – mpettis
@mpettis w ogóle nie jest potrzebna, jeśli nie masz flag :-D Jest to z pewnością bardziej kompletne, ale zostawiłem tutaj dla zwięzłości – sidyll
Potrzebuję czegoś takiego dla wielu linii: '% string%' do 'string =% ciąg% ' –