Potrzebuję sposobu na usunięcie wiodących wcięć (tabulatorów i spacji) z danych skopiowanych do schowka z Notepad ++.
Dane w samym dokumencie Notepad ++ powinny nadal mieć te wiodące wcięcia, a dane kopiowane do schowka nie powinny.
To zachowanie powinno być inicjowane przez CTRL + C i tylko wtedy, gdy jestem w Notepad ++.
Tak dzieje się w Notepad ++, kiedy zaznaczam tekst regularnie myszką:
To powinno być w schowku po regularnym zaznaczaniu tekstu i kopiowaniu:
Uwagi:
- Zdjęcia mają lepiej zilustrować moją potrzebę - moje rzeczywiste kody są dłuższe.
- Zapytałem również o to tutaj .
- Pytam o to, ponieważ nie mogę wkleić wciętych bloków kodu do terminala Linux, jeśli te
cat
kody zawierają heredocuments (ma to związek z przetwarzaniem ograniczników heredocument, długa historia).
windows-10
notepad++
clipboard
JohnDoea
źródło
źródło
:set paste
.cat
heredoców - tak jest .Odpowiedzi:
Rozważ następujący skrypt AutoHotKey (AHK). Zobacz AutoHotkey Tutorial i dokumentację więcej wyjaśnień na temat skryptów AutoHotkey.
Po zainstalowaniu AutoHotKey naciśnij Ctrl+ Shift+ club xw Notepad ++, aby skopiować (lub wyciąć) do schowka z przyciętymi liniami.
Uwaga: użyłem Ctrl+ Shift, abyś mógł nadal używać oryginalnej kopii i normalnie ciąć tylko Ctrl. Jeśli nie podoba ci się to zachowanie, po prostu usuń je
+
w obu+^c::
i+^v::
.;
Wyjaśnienia znajdują się w komentarzach (począwszy od ). Podobnie jak w przypadku każdego kodowania, lepiej zostaw komentarz, aby lepiej zrozumieć skrypt, gdy wrócisz do niego później.źródło
ctrl+z
aby pobrać usuniętą treść. Jest to nieco problematyczne. Rozumiem, że można użyć następującego kodu?if !LangID := EN { return }
. Dodanie go na początku skryptu spowodowało błąd i owijanie skryptu podobną wersją pluselse { return }
po zamknięciu nie błąd, ale nie działał.TrimClipboard(){ ... }
doif
instrukcji. Umieśćif
instrukcję wewnątrz funkcji lub wokół poleceńSend, ... TrimClipboard()
Wystarczy użyć
Alt + Mouse dragging
lub,Alt + Shift + Arrow keys
aby wybrać kolumnę, a następnieCtrl+C
skopiować kolumnę.Zobacz ten przykład: https://notepad-plus-plus.org/fr/features/column-mode-editing.html
Edytować:
Możemy również wybrać całą kolumnę lub nawet więcej niż jedną kolumnę, a także możemy wybrać jeden lub wiele wierszy.
Oto prosty sposób, aby to zrobić:
Kliknij lewym przyciskiem myszy na początku żądanego wyboru.
Przejdź do miejsca, w którym żądany wybór musi się zatrzymać
Przesuń kursor do drugiej i ostatniej lokalizacji, używając:
ALT
+SHIFT
ileft click
jednocześnie, aby wybrać żądane kolumny i wiersze.Mam nadzieję, że to pomoże
źródło
Oto przenośne rozwiązanie wykorzystujące Javę
Pierwszym krokiem jest oczywiście instalacja Java
Następnie wklej następujące elementy do pliku o nazwie
Trimmer.java
w katalogu użytkownika (C: \ Users \ twoja_nazwa)Następnie otwórz wiersz polecenia i wpisz
Powinieneś teraz mieć plik Trimmer.class w tym samym folderze. Możesz teraz usunąć plik Trimmer.java.
W tym momencie mamy program, który usunie wszystkie wiodące i końcowe białe spacje z każdej linii w schowku, ale wciąż potrzebujemy sposobu, aby uruchomić go wygodnie. Zróbmy dla niego skrót!
Najpierw utwórz skrót do wiersza polecenia (kliknij prawym przyciskiem myszy C: \ Windows \ System32 \ cmd.exe)
Następnie kliknij ten skrót prawym przyciskiem myszy i wybierz „Właściwości”. W tym oknie musimy zrobić kilka rzeczy. Na karcie „Skrót” powinna znajdować się opcja „Cel”, która mówi coś podobnego
Zmień to, żeby powiedzieć
Spowoduje to, że wiersz polecenia po prostu uruchomi nasz program i zakończy działanie, gdy użyjemy tego skrótu.
Następnie kliknij pole „Klawisz skrótu” i naciśnij klawisz skrótu, który chcesz uruchomić zamianę tekstu. Polecam Ctrl+ Shift+ Cdla łatwości użytkowania!
Na koniec zmień opcję „Uruchom” na „Zminimalizowane”, ponieważ nie chcemy, aby okno migało na ekranie za każdym razem, gdy korzystamy ze skrótu.
Po tym wszystkim powinieneś być w stanie skorzystać z następującego przepływu pracy:
źródło
Może czegoś mi brakuje, ale wszystkie inne odpowiedzi wydają się zbyt skomplikować rozwiązanie. Jeśli dobrze zrozumiałem, wszystko, co chcesz zrobić, to usunąć wiodące białe spacje (spacje lub tabulatory), a dane są dostępne w Notepad ++
W takim przypadku rozwiązanie jest proste. Otwórz plik w
Notepad++ >> Search >> Replace... or Ctrl+H
Znajdź co :
^( *)[ ]|^\t*
Zamień na : pozostaw puste
Aby znaleźć całą wiodącą przestrzeń, której używamy
^( *)[ ]
i aby znaleźć wszystkie wiodące karty, używamy^\t*
jako takiej, aby znaleźć całą wiodącą przestrzeń lub wszystkie wiodące karty, z których korzystamy operator lub|
. Upewnij się, że w oknie zamiany wybrano Wyrażenie regularne .Powinien kończyć się dość szybko, nawet jeśli jest to duży plik. Zamknij okno Zamień i po prostu wybierz wszystko (Ctrl + A) >> Kopiuj (Ctrl + C)
źródło
Moja odpowiedź opiera się na odpowiedzi Stevena, którą oznaczyłem jako poprawną (ale miałem z tym kilka problemów i próbowałem edytować, chociaż moja edycja została odrzucona).
Oto kod, który najlepiej dla mnie działał:
Różnice w stosunku do oryginalnego kodu Stevena:
Send, ^c
iSend, ^x
zSend, ^{sc02e}
iSend, ^{sc02d}
, odpowiednio. Zapobiega to błędom usuwania tekstu w trybie hebrajskim i niektórych innych trybach języka innego niż angielski).źródło