Wstaw wiersz tekstu przed wierszami pasującymi do wyrażenia regularnego w vimie


2

Próbuję dodać kolumnę do tabeli HTML za pomocą vima, więc muszę dodać parę <td>tagów linii przed każdym </tr>. Do tej pory mam

:186,$s/ <\/tr>/<td><\/td> \n <\/tr>/g
ale vim pokazuje ^@zamiast tworzyć nową linię dla zamykającego znacznika tr. Czy jest na to jakiś sposób?

Odpowiedzi:


4

Tak, \rzamiast części \nzastępczej trzeba użyć dziwactwa z :spolecenia Vima . Możesz dodatkowo uprościć polecenie, używając innego separatora, np. #Odwołując się do dopasowania za pomocą &:

:186,$s# </tr>#<td></td> \r&#g

Dzięki! Jestem trochę zdezorientowany, ponieważ myślałem, że \ n to znak nowej linii Linuksa, a \ r \ n dotyczy Windows. Co to znaczy „nawiązać do meczu z &?
Yitzchak,

1
To wyjaśniono na :h s/\ri :h s/\&, odpowiednio. &Zawiera meczu, czyli </tr>, więc nie trzeba go powtarzać. Można również użyć twierdzenia \zs, ale jest to jeszcze bardziej zaawansowane ...
Ingo Karkat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.