2010-02-03 7 views

Odpowiedz

5

Zero-szerokość look-za twierdzenie

"Jak mam szukać«\ n»bez poprzedzającego«\ r»w vim?"

/\r\@<!\n 

Jak wyszukiwać i zastępować te wystąpienia za pomocą "\ r \ n"?

:%s/\r\@<!\n/\r\n/gc 

Pozbądź się ostatecznego "c", jeśli chcesz zaakceptować każdy mecz bez potwierdzenia.

Edycja: Jeśli jednak chcesz uzyskać odpowiedź, którą możesz zapamiętać bez użycia miliardów spojrzeń przed i za miliardem, zobacz odpowiedź Jacksona Millera. Czasami lepiej jest uprościć swój problem i korzystać z narzędzi, które nie wymagają ciągłego czytania instrukcji :)

+0

Wyszukiwanie mi pomogło. BTW, końcówki linii można zmienić za pomocą: e ++ ff = dos, a następnie: w –

+0

wow Nie wiedziałem, że vim jest obsługiwany z tyłu, fajnie! – calid

+0

Hej, podoba mi się twoja droga, Merlyn. Po prostu staram się zrobić to, co wiem, jak to zrobić. –

3

Co powiedzie się na zamianę \ r \ n na \ n, a na koniec \ n na \ r \ n.

Powinno być coś takiego:

:%s/\r\n/\n 
    :%s/\n/\r\n 
2

Aby zmienić wszystkie zakończeń linii, które są \ r \ n \ n, użyj

:%s/\r$// 

Spowoduje to wyszukanie wszystkich znaków \ ​​r następnie nową linią i zastąp go po prostu nową linią:

2

Użyj narzędzia, takiego jak dos2unix lub unix2dos, aby przekonwertować zakończenia linii na żądany format. Istnieją natywne implementacje tych narzędzi dla systemów unix i windows.