2015-07-14 17 views
21

W Atomie, jeśli aktywuję tryb regex w narzędziu wyszukiwania i zamiany, może on znaleźć znaki nowej linii jako \n, ale kiedy spróbuję je zastąpić, nadal są dostępne.Jak zamienić nową linię w Atom?

Czy w Atom nie można zastąpić nowego ciągu spanning?

Odpowiedz

24

Wygląda jak Atom dopasowuje znaki nowej linii jako \r\n, ale zachowuje się niekonsekwentnie, zastępując tylko \n bez niczego.

Nowe linie wydają się pasować do \s+ i \r\n, a tylko "połowa" zakończenia linii odpowiada \n.

  • Jeśli zastąpić \n sznurkiem, nic się nie dzieje do końca lini, ale ciąg jest dołączany do następnej linii
  • Jeśli zastąpić \r sznurkiem, nic się nie dzieje w ogóle, ale kursor zaliczki.
+0

Czy na pewno jest to problem z regex silnika Atom w przeciwieństwie do pliku zawierającego różne zakończenia linii (a Atom nie robi różnicy wizualnej)? – axic

+0

Nie przejmuj się, czy problem występuje w "silniku regex Atom". Wyszukaj i zamień zachowuje się w dziwny i zaskakujący sposób. – djsadinoff

+1

Cóż, nie odpowiedziałeś na drugą część mojego komentarza - czy jest to prawdziwy błąd, czy coś bez wizualnego sprzężenia zwrotnego? Twoja odpowiedź nie była całkiem jasna na temat użytych wyrażeń - czy wypróbowałeś "\ r? \ N $"? Lub może wymienić najpierw wszystkie wystąpienia \ r z \ n, używając "\ r \ n? $"? – axic

0

purystów prawdopodobnie nie spodoba moje rozwiązanie, ale można również przekształcić Znajdź i zamień wejść do pola tekstowego wielowierszowego poprzez kopiowanie zawartości z kilkoma przerwami liniowych i wklejenie go do znajdowania wejść/wymienić. Będzie działać z lub bez użycia regex.

Na przykład, można skopiować ten 3 linie i wkleić je do obu Znajdowanie i zamienianie wejść:

line 1 
line 2 
line 3 

Po założeniu wejścia mają liczbę wierszy, które są potrzebne, można je zmodyfikować, jak chcesz (i dodaj wyrażenie regularne, jeśli to konieczne).

+1

Nie działa dla mnie. –

2

Można użyć odwrotnego odniesienia:

np. Wymienić potrójne puste linie z jednym pustym wierszem

Find regex (\ r \ n) {3}

zastąpić $ 1

Można wskazać podwójne linie puste (\ r \ n) { 2} ... lub dowolną liczbę n pustych wierszy z (\ r \ n) {n}. I możesz pominąć $ 1 i pozostawić puste miejsce, aby całkowicie usunąć puste wiersze.

Jeśli chcesz zastąpić 3 puste wiersze dwoma, twój zamienny ciąg może wynosić 1 $ 1 lub 1 $ 2 (lub nawet 1 $ 3 ... 3 $ 3 ... 3 $ 2 ...): 1 $ odnosi się tylko do pierwsze wyrażenie w nawiasach okrągłych \ r \ n; 2 dolary z drugim (czyli tyle samo, co pierwsze, więc 1 $ 1 $ zastępuje ten sam sposób, jak 1 $ 2, ponieważ 1 $ == $ 2). Generalizuje się na n pustych linii.

+0

Myślę, że OP próbował zastąpić ciągi, które obejmują linie, a nie puste linie. – TriskalJM

+0

To jest świetne, ale prawdziwą sztuczką jest użycie \ r \ n, co zaskoczyło mnie. dzięki! – djsadinoff

3

To alittle nieco późno, by odpowiedzieć, ale używam następujący termin do wyszukiwania i działa z Atom v1.19.7 x64

\r?\n|\r 

BR

Powiązane problemy