Chciałbym mieć funkcjonalność podobną do grep w Notepad ++.
W najprostszej wersji chciałbym móc skopiować wszystkie wiersze z bieżącego bufora zawierającego słowo foo
do nowego bufora. Mogę użyć wtyczki TextFX, aby ukryć wszystkie linie bez foo
, ale to nie robi wszystkiego, co chcę (jest stracone na Alt- TabNie mogę skopiować tylko pasujących linii itp.).
grep -v
.Właśnie zastanawiałem się nad tym samym pytaniem. Nie jestem pewien, czy jesteś tego świadomy; w oknie dialogowym Znajdź możesz znaleźć wszystko w bieżącym dokumencie, który wyświetli okno u dołu z pasującymi liniami. Następnie możesz skopiować to do nowego dokumentu.
Niestety, zawiera pewne dodatkowe informacje w wynikach (numer wiersza itp.), Ale możesz je odfiltrować za pomocą trybu kolumnowego.
źródło
Innym doskonałym rozwiązaniem jest użycie wtyczki NppExec w celu dodania polecenia grep do Notepad ++.
Główną zaletą w stosunku do rozwiązania „Zakładki” jest to, że działa on znacznie szybciej, zwłaszcza w przypadku dużych plików i nie trzeba modyfikować oryginalnego pliku. Pamiętaj, że musisz raz utworzyć mały skrypt, aby udostępnić tę funkcję w Notepad ++.
Mój przykład rozwiązania dotyczy systemu Windows i używam findstr , który jest narzędziem polecenia podobnym do grep, dostępnym na wszystkich komputerach z systemem Windows. Ale możesz oczywiście użyć dowolnego innego klona grep do wyboru.
Krok 1: Zainstaluj wtyczkę NppExec
Idź do
Plugins / Plugin Manager / Show Plugin Manager
, przewiń w dół do NppExec, wybierz tę wtyczkę i kliknij Zainstaluj. Może być konieczne ponowne uruchomienie Notepad ++, aby zakończyć proces instalacji.Krok 2: Utwórz mały skrypt dla NppExec
Idź do
Plugins / NppExec / Execute
, wprowadź następujący skrypt i zapisz go jako „grep”:(proszę dokładnie sprawdzić, czy ścieżka dla pliku OUTFILE działa w danym środowisku)
Krok 3: Dodaj pozycję menu dla skryptu (opcjonalnie)
Przejdź do
Plugins / NppExec / Advanced Options
, wybierz skrypt „grep” podAssociated script
i kliknij OK, aby zapisać. Uruchom ponownie Notatnik zgodnie z żądaniem NppExec, aby zakończyć dodawanie nowego elementu menu.Krok 4: Dodaj skrót do skryptu (opcjonalnie)
Idź do
Settings / Shortcut Mapper / Plugin commands
, przewiń w dół, aby znaleźć polecenie skryptu „grep” i zdefiniuj dla niego skrót. na przykładALT-G
źródło
$(FULL_CURRENT_PATH)
nie zwróci żadnej ścieżki, jeśli plik nie został jeszcze zapisany. Można się spodziewać, że gdzieś się znajduje (katalog tymczasowy?), Ale tak naprawdę nie. Ta niezapisana sytuacja pliku może być dość powszechna, wystarczy wkleić coś z dziennika, aby go grep ... możemy udoskonalić ten skrypt, aby zapisać plik, jeśli jeszcze nie został zapisany - ale dla uproszczenia przypomnę sobie, aby zapisać ręcznie przed greppingiem. Dzięki.Krok 5: Utwórz skrypt do szybkiego zapisywania i grepowania dokumentu
Przejdź do Plugins / NppExec / Execute, wprowadź następujący skrypt i zapisz go jako „grep”:
źródło
findstr
na pliku autozapisu zamiast na bieżącym pliku? (6) Dlaczego twoja odpowiedź używa zarównoC:\temp
iC:\tmp
? …… Proszę nie odpowiadać w komentarzach; edytuj swoją odpowiedź, aby była jaśniejsza i bardziej kompletna.