Podniosły tekst 2: Jak usunąć puste / puste linie

271

Załóżmy, że miałem plik tekstowy z następującymi dziewięcioma liniami:

foo

bar

baz

qux

quux

Jak mogę użyć Sublime Text 2, aby usunąć wszystkie cztery puste / puste linie, pozostawiając tylko pięć wierszy?

Nacięcie
źródło

Odpowiedzi:

658

Wybierz tekst

Naciśnij:

  • Ctrl+ Hna PC lub
  • Command+ Alt+ Fna Macu lub
  • Kliknij Znajdź-> Zamień.

Upewnij się, że wybrałeś „wyrażenie regularne”, naciskając:

  • Alt+ Rna PC lub
  • Command+ Alt+ Rna Macu lub
  • Kliknij .*w polu Znajdź.

Znajdź co: ^\n

Zamień na: (nic, pozostaw puste).

Hugo Corrá
źródło
3
To działa, dziękuję! Czy istnieje sposób powiązania znalezionego / zamienionego skrótu klawiaturowego lub zapisania go w celu szybkiego dostępu? Poszukałem go i nic nie znalazłem
Nick
46
Małe zastosowanie sugestii, ^(\r|\n\r?)aby pokryć wszystkie możliwe przerwy linii.
Haris Krajina,
5
Dla mnie (Sublime Text 2) skrót to (Alt + Cmd + F), a następnie jak opisał Hugp Corra
Maxence
24
Lepszym sposobem na znalezienie wszystkich pustych linii (w tym z białymi odstępami) byłoby: ^[\s]*?[\n\r]+
Crates
5
@Crates, którego nie potrzebujesz ?, ponieważ *również pasuje do zerowych wystąpień i \s*będzie pasować do dodatkowego „\ r”, na przykład podczas edycji tekstu systemu Windows w środowisku linux, podobnie ^\s*$jak i sztuczka.
drevicko
67

Wyrażenie regularne w odpowiedzi Hugo jest poprawne, gdy w wierszu nie ma spacji. W przypadku, gdy istnieją spacje regularne, może być^\s+$

gąsienica
źródło
32
Zakłada się, że jest to biały znak. Ponadto nie będzie działać na faktyczne zastąpienie linii niczym. Spróbuj ^[\s]*?[\n\r]+zamiast tego. Przetestowałem to i działa.
Crates
24

Istnieją również niektóre wtyczki ST2 / ST3 do takich zadań. Lubię te dwa:

Pierwszy ma dwie metody usuwania pustych / niepotrzebnych wierszy. Jedna z nich nazywa Delete Surplus Blank Linessię fajna. Usuwa tylko te wiersze, po których następuje kolejna pusta linia

V-Light
źródło
10

Znajdź / zamień rozwiązanie:

Regex Find:\s+

Zamień na: // pojedyncza spacja

Usersbs
źródło
3
Właściwie to: $ \ s +
kris,
8

Nawet nie wiem, jak to wszystko działa, ale próbowałem ^\s*$i nie działałem (pozostawiając kilka pustych linii).

To zamiast tego ^\s*działa dla mnie

{sublime text 3}

abs
źródło
7

Musiałem użyć:

zamień \ n ^ \ s * \ n na \ n

Https://github.com/NicholasBuse/sublime_DeleteBlankLines plugin nie zrobił nic w ogóle.

Bruce Edge
źródło
2
Upewnij się, że wybierasz obszar, który chcesz zastosować, a następnie użyj odpowiednich klawiszy skrótu Windows : Ctrl + Alt + Backspace (Usuń puste linie) Ctrl + Alt + Shift + Backspace (Usuń nadmiar pustych linii) OSX : Ctrl + Alt + Delete (Usuń puste linie) Ctrl + Alt + Shift + Usuń (Usuń puste linie) Linux : Ctrl + Alt + Backspace (Usuń puste linie) Ctrl + Alt + Shift + Backspace (Usuń nadmiar pustych linii)
Xtremefaith
5

Wzniosły tekst 2 i 3

Komentarze @crates działają dla mnie,

Krok 1: Po prostu naciśnij ctrl+H

Krok 2: naciśnij klawisz RegEX

Krok 3: napisz to w Find: ^[\s]*?[\n\r]+

Krok 4: zamień wszystko

rsc05
źródło
5

Prostsze niż myślałem. Ctrl+ ANastępnie Ctrl+ HWybierz opcję Wyrażenie regularne .*. Wymień \n\nsię \n. Voila!

Samuel Wahome
źródło
3

Szukasz tego:

^\n|^\s+$

nie usunie wiersza, jeśli z przodu znajduje się biała spacja lub tabulatory>

na przykład:

nie zostaną one usunięte: ... spacja ... abc

... zakładka ... abc

to:

... przestrzeń ... ... nic więcej ...

... zakładka ... ... nic więcej ...

Brian Joseph Spinos
źródło
3

Korzystanie z wielu wyborów: wybierz jedną parę podziałów linii, a następnie kilkakrotnie użyj szybkiego wyszukiwania wszystkich ( Alt+ F3) lub szybkiego dodawania następnego ( Ctrl+ D), aby zaznaczyć je wszystkie; następnie naciśnij, Enteraby zastąpić je pojedynczymi podziałami linii.

deltab
źródło
1
W dużych dokumentach uważam, że ta awaria jest wysublimowana.
Thalecress
3

Jest to łatwiejszy sposób na zrobienie tego bez wyrażenia regularnego. musisz tylko zaznaczyć cały tekst. następnie przejdź do: Edytuj -> Permute Lines -> Unique.

To wszystko. i wszystkie puste linie zostaną usunięte.

Dihia LANASRI
źródło
Spowoduje to usunięcie WSZYSTKICH nieunikalnych linii. Nie tylko puste. Powiedzmy, że masz HTML z wieloma wierszami będącymi pojedynczym zamykaniem </div>, spowoduje to usunięcie wszystkich oprócz pierwszego. Lub w kodzie usunie wszystkie twoje zamknięcia}. To nie jest niezawodne, aby usunąć tylko puste wiersze, zrozumieć, co robi.
Ivan McA
2

Innym sposobem jest użycie wiersza polecenia cc.dblConyEdit (wtyczki) do usunięcia pustych linii lub pustych linii.

Kutas
źródło
1

Istnieje również „Połącz linie”. W systemie OSX zaznacz cały tekst i naciśnij kilka razy CMD-J, a zwinie on zaznaczenie według linii, usuwając podziały linii.

Edycja: dzięki temu podejściu będziesz mieć wszystko w jednym wierszu, a nie o to prosiłeś.

Donncha
źródło
2
Widzę jednak, dokąd zmierzasz .. ta sugestia powoduje przeciągnięcie całej zawartości do jednej linii, ale makro sprawiłoby, że to działałoby: (klawisze OSX) ctrl-q(makro nagrywania), cmd-j(łączenie linii) down arrow, ctrl-q(makro zakończenia) . Następnie shift-ctrl-qpowtarzaj tak często, jak to konieczne ...
ptim
1

Dla tych, którzy są ciekawi wysublimowanego edytora tekstu, nieoficjalna dokumentacja może być interesująca!

herve
źródło
0

W moim przypadku niektóre puste wiersze zawierały przestrzeń o szerokości zerowej znaku Unicode (U + 200b). Aby pozbyć się pustych linii, w tym tych z tym znakiem Unicode:

\s\x{200b}|^\s
MetalGodwin
źródło
0

Korzystając z funkcji znajdź / zamień, spróbuj wkleić zaznaczenie zaczynające się na końcu linii powyżej pustej linii i kończy się na początku linii po pustej linii. Działa to dla pojedynczej pustej linii. Możesz powtórzyć proces dla wielu pustych linii. CTRL- H, umieść swój wybór w polu wyszukiwania i umieść pojedynczy nowy wiersz w polu zastąpienia za pomocą kopiuj / wklej lub inną metodą.

Clayton Loudon
źródło
0

Aby znaleźć dodatkowe spacje i puste linie, naciśnij Ctrl+ Shift+ F Wybierz Wyszukaj wyrażenia regularne

[\n\r]{2,}

a następnie zamień na

\n

aby usunąć wszelkiego rodzaju spacje w wzniosły i Dreamviewr

Naeem Ijaz
źródło
-1

Jeśli ^\nnie działa poprawnie ===> spróbuj .*[^\w]\n

yuxin Zhang
źródło