Jak usunąć określone linie w Notepad ++?

94

Czyszczę niektóre pliki kodu (C #) i chcę usunąć regiony. Chciałbym też usunąć wszystkie wiersze zawierające ciąg „#region”. To tylko przykład i przychodzi mi do głowy kilka innych zastosowań, ale czy to w ogóle możliwe?

Rismo
źródło
2
Kusi mnie, aby zagłosować na to pytanie poza temat ... To głównie pytanie dotyczące notatnika ++ i konkretnego schematu pracy, ale niekoniecznie związane z programowaniem: /
Andreas Niedermair
@AndreasNiedermair zgodzić
displayname

Odpowiedzi:

39

Możesz użyć menu Wyszukaj -> Zastąp ... ( Ctrl+ H).

Posiada funkcję wyrażeń regularnych do zastępowania. Możesz użyć wyrażenia regularnego, które pasuje do #region, a także wszystkiego innego, co znajduje się w wierszu, i zastąpić je pustą spacją.

John T.
źródło
Dzięki, zrobiłem to i działa. Ale teraz próbuję zastąpić \ n \ n tylko jednym \ n, ale nie działa, jakieś pomysły?
Rismo
1
użyj rozszerzonego wyszukiwania, aby zastąpić sekwencje specjalne (przycisk opcji tuż nad wyrażeniem regularnym)
John T
Dzięki, John. Zrobiłem to i działa dla jednego podziału wiersza \ n, ale nie dla dwóch. Szukam \ n \ n i zamieniam go na \ n, ale to nie działa. Czy Ci to pasuje ?
Rismo
1
Jeśli wpisałeś dokument w systemie Windows, końce linii to \ r \ n. Końcówki linii w stylu UNIX to \ n.
John T
5
Właśnie zauważyłem, że TextFx -> TextFx Edit -> Delete Surplus Blank Lines robi to samo :)
Rismo
278

Notepad ++ v6.5

  1. Menu wyszukiwania -> Znajdź ... -> Zakładka Zaznacz -> Znajdź: szukany tekst , zaznacz Linia zakładek , a następnie Zaznacz wszystko . Spowoduje to dodanie zakładek do wszystkich wierszy z wyszukiwanym hasłem, zobaczysz niebieskie kółka na marginesie.

  2. Następnie menu Szukaj -> Zakładka -> Usuń linie z zakładkami . Spowoduje to usunięcie wszystkich linii dodanych do zakładek.

Do wyszukiwania możesz też użyć wyrażenia regularnego. Ta metoda nie spowoduje powstania pustego wiersza, takiego jak John, i faktycznie usunie wiersz.

Starsza wersja

  1. Menu Szukaj -> Znajdź ... -> Znajdź: tekst do wyszukania , zaznacz Linia zakładek i kliknij Znajdź wszystko .
  2. Następnie Wyszukaj -> Zakładka -> Usuń linie z zakładkami
Promień
źródło
8
Dziękuję Ci! Wow, nie zdawałem sobie sprawy, że NP ++ to zrobił ... świetna oszczędność czasu. Znajdź i dodaj linie do zakładek + usuń linie. Niesamowite. Dziękuję Ci!!
Matthew M.,
co za hack, dlaczego nie mogę po prostu zamienić \ r \ n na „” :(
felickz
13
To jeden z tych małych perełek, w których chciałbym zagłosować więcej niż 1. Nie mogę powiedzieć, ile czasu zmarnowałem przez lata, nie zdając sobie sprawy, że to było dostępne! Jedynym problemem jest to, że teraz muszę być bardziej produktywny ...
Milner
1
Jeśli tego szukasz. „Mark” ma teraz swoją własną zakładkę w wyskakującym menu wyszukiwania.
bunnybare
1
@bunnybare, dzięki. Zaktualizowałem odpowiedź do najnowszej wersji.
Ray
4

Oto sposób całkowitego usunięcia wierszy zawierających „TWÓJ TEKST”:

  • Otwórz okno dialogowe Zamień
  • Wprowadź następujący ciąg wyszukiwania: .*YOURTEXT.*[\r]?[\n](zamień YOURTEXT na swój tekst)
  • Włącz „Wyrażenie regularne”
  • Wyłącz „. Pasuje do nowej linii”

Podane wyrażenie regularne dopasowuje końce linii zarówno w systemie Windows, jak i Unix.

Jeśli twój tekst zawiera znaki, które mają specjalne znaczenie dla wyrażeń regularnych, takie jak ukośnik odwrotny, musisz je zmienić.

ocroquette
źródło
Dlaczego używasz klasy postaci dla jednej postaci?
Toto
4

Jest to najczęstsza funkcja Notepad ++, której używam do aktualizacji kodu.

Wszystko, co musisz zrobić, to:

  • Wybierz wspólny ciąg, który jest obecny we wszystkich wierszach.
  • Naciśnij Ctrl+F
  • Na karcie Zaznacz wklej powtarzający się ciąg i zaznacz pole wyboru Linia zakładki .
  • Kliknij Mark All
  • Teraz przejdź do menu SzukajZakładkaUsuń linie zaznaczone

Możesz skorzystać z tego linku, aby uzyskać obrazowe wyjaśnienie.

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/

Rishabh Pant
źródło
Wydaje się, że odsyłacz jest uszkodzony (lub może wymagać użycia przerażającej ilości kodu JavaScript).
Peter Mortensen
2

Odpowiedź Jacoba dla Johna T działa idealnie, aby usunąć całą linię i możesz znaleźć w Plikach z tym. Pamiętaj, aby zaznaczyć „Wyrażenie regularne” u dołu.

Rozwiązanie: ^.*#region.*$

Nacięcie
źródło
2
powiedział, że chce usunąć linię, a nie zastąpić ją czymś
felickz
1

Sprawdź, jakie jest Twoje EOL, \ n lub \ r \ n. Następnie zamień na .*#region.*\r\nnic w trybie regexpr.

Val
źródło
0

Możesz spróbować zastąpić #region za pomocą \ n, włączając rozszerzony tryb wyszukiwania.

biegun północny
źródło
2
OP powiedział, że chce "usunąć wszystkie linie",
zastąpisz
0

Używając wyrażenia regularnego oraz funkcji Znajdź i zamień, możesz usunąć wszystkie wiersze zawierające #region bez pozostawiania pustych wierszy. Ponieważ z jakiegoś powodu metoda Raya nie działała na moim komputerze, wyszukałem (.*#region.*\n)|(\n.*#region.*)i zostawiłem puste pole zamiany.

To wyrażenie regularne zapewnia, że ​​if #regionzostanie znalezione w pierwszym wierszu, końcowy znak nowej linii zostanie usunięty, a jeśli zostanie znaleziony w ostatnim wierszu, poprzedni nowy wiersz zostanie usunięty.

Mimo to rozwiązanie Raya jest lepsze, jeśli działa dla Ciebie.

Jerzy
źródło