Pytanie składa się z dwóch części, na które już mam odpowiedź.
- Jak automatycznie usunąć końcowe białe znaki z całego edytowanego pliku ? -> Odpowiedź: użyj wtyczki AnyEdit , którą można ustawić tak, aby robiła to przy każdym zapisie do pliku.
- Jak automatycznie usunąć końcowe białe znaki tylko z linii, które zmieniłem ? -> Tego nie wiem i doceniłbym każdą pomoc.
eclipse
whitespace
Jan Żankowski
źródło
źródło
Odpowiedzi:
Preferences-> Java-> Editors-> Save Actions-> sprawdź Perform the selected actions on save-> sprawdź Additional actions-> kliknij Configure..-> przejdź do Code organizingzakładki -> sprawdź Remove trailing whitespace-> wybierz All lines.
Preferences-> Java-> Editor-> Save Actions-> sprawdź " Perform the selected actions on save-> sprawdź Format source code-> wybierz Format edited lines.
Pamiętaj, że nie trzeba klikać Configure the formatter settings on the Formatter page- wszystkie style kodu automatycznie obejmują usuwanie końcowych białych znaków. Przynajmniej nie mogłem znaleźć ustawienia dla tego w konfiguracji Formatera i zadziałało to od razu dla wbudowanych konwencji Java, Eclipse, Eclipse 2.1, a także GoogleStyle .
Korzystając z tego zestawu, oczywiście musisz również wyłączyć rozwiązanie w części 1 pytania.
źródło
Zakładam, że twoje pytania dotyczą kodu Java. W takim przypadku tak naprawdę nie potrzebujesz żadnych dodatkowych wtyczek, aby wykonać 1). Możesz po prostu przejść do Preferencji -> Java -> Edytor -> Zapisz akcje i skonfigurować go tak, aby usuwał końcowe białe znaki .
Po dźwiękach tego chcesz też, aby było to ustawienie dla całej drużyny, prawda? Aby ułatwić życie i uniknąć konieczności pamiętania o konfigurowaniu go za każdym razem, gdy masz nowy obszar roboczy, możesz ustawić akcję zapisu jako preferencję specyficzną dla projektu, która jest zapisywana w SCM wraz z kodem.
Aby to zrobić, kliknij prawym przyciskiem myszy swój projekt i wybierz Właściwości -> Edytor Java -> Zapisz akcje . Stamtąd możesz włączyć ustawienia specyficzne dla projektu i skonfigurować je tak, aby usuwać końcowe białe znaki (między innymi przydatne rzeczy).
Uwaga : Ta opcja została usunięta w Eclipse Kepler (4.3) i kolejnych wydaniach.
NB # 2: Wydaje się, że opcja powróciła w Eclipse Luna -
Luna Service Release 1a (4.4.1)
źródło
Nie potrzebujesz do tego żadnej wtyczki. Na przykład, jeśli kodujesz JAVA, możesz usunąć końcowe białe znaki, konfigurując działania zapisu:
Zaćmienie 3.6
Preferences-> Java-> Editors-> Save Actions-> Sprawdź Perform the selected actions on save-> Sprawdź Additional actions-> Kliknij Configure..przycisk.
Na Code organizingkarcie sprawdźRemove trailing whitespace
źródło
PyDev może to zrobić za pomocą obuCtrl + Shift+, Fjeśli masz ustawioną opcję formatowania kodu, lub during saving:
Eclipse-> Window-> Preferences->PyDev -> Editor-> Code Style-> Code Formatter:
Używam co najmniej tych:
źródło
Wykonaj następujące czynności:
Preferences-> Java-> Editor->Save Actions
źródło
Możesz zamapować klucz w Eclipse, aby ręcznie usunąć końcowe białe znaki w całym pliku, ale tylko na żądanie zamiast automatycznie przy zapisywaniu. (Preferencje / Klucze, a następnie zamapuj zestaw kluczy na Plik / Usuń końcowe białe znaki). Może to być przydatne, jeśli chcesz wyczyścić wszystkie nowe pliki, ale pozostawiasz niezmieniony stary kod.
Inną strategią jest aktywacja wizualnego wyświetlania białych znaków, więc przynajmniej będziesz wiedział, kiedy dodajesz końcowe białe znaki. O ile mi wiadomo, nie ma sposobu, aby wyświetlić tylko końcowe białe znaki, ale cieszę się, że udowodniono mi błąd.
źródło
W skrócie, w przypadku edytorów, które w ogóle nie obsługują usuwania spacji końcowych (np. Edytor XML), możesz usunąć go ze wszystkich linii, wykonując wyszukiwanie i zamieniając, włączając wyrażenia regularne, a następnie wyszukując „[\ t] + $ ”i zamieniając go na„ ”(puste). Prawdopodobnie jest to lepsze wyrażenie regularne, ale działa dla mnie bez konieczności instalowania AnyEdit.
źródło
Powiedziałbym też AnyEdit. Nie zapewnia tej konkretnej funkcjonalności. Jeśli jednak Ty i Twój zespół korzystacie z funkcji AnyEdit przy każdej akcji składowania, to po otwarciu pliku nie może on zawierać końcowych białych znaków.
Jeśli więc zmodyfikujesz ten plik i dodasz nowe końcowe spacje, to podczas operacji składowania AnyEdit usunie tylko te nowe spacje, ponieważ są to jedyne spacje końcowe w tym pliku.
Jeśli z jakichś powodów musisz zachować końcowe spacje w liniach, które nie zostały przez ciebie zmodyfikowane, nie mam dla ciebie odpowiedzi i nie jestem pewien, czy taka funkcja istnieje w żadnej wtyczce Eclipse ...
źródło
Obecnie nie można tego zrobić w Eclipse w sposób ogólny, ale można to zmienić, biorąc pod uwagę podstawową wiedzę o Javie i trochę wolnego czasu, aby dodać podstawową obsługę tego https://bugs.eclipse.org/bugs/show_bug.cgi? id = 180349
Problem zależny: https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173
źródło
Dla php istnieje również opcja:
źródło
Jest to naprawdę łatwy sposób, aby to zrobić za pomocą sed, narzędzia wiersza poleceń Uniksa. Prawdopodobnie możesz utworzyć makro w Eclipse, aby uruchomić to:
źródło
Jak powiedział @Malvineous, nie jest profesjonalne, ale obejście problemu, aby użyć metody Znajdź / Zamień, aby usunąć końcowe spacje (poniżej, w tym tabulator U + 0009 i biały znak U + 0020).
Po prostu naciśnij Ctrl + F (lub Command + F)
[\t ][\t ]*$
dodatkowo:
Aby usunąć wiodące miejsce, znajdź
^[\t ][\t ]*
zamiast[\t ][\t ]*$
Aby usunąć puste linie, znajdź
^\s*$\r?\n
źródło
[\t ]+$
zamiast[\t ][\t ]*$
?Nie znam żadnego rozwiązania dla drugiej części twojego pytania. Powodem jest to, że nie jest jasne, jak zdefiniować zmieniłem . Zmieniony kiedy? Tylko między 2 zapisami lub między zatwierdzeniami ... Zasadniczo - zapomnij.
Zakładam, że chcesz trzymać się pewnych wskazówek, ale nie dotykaj reszty kodu. Ale wytyczne należy stosować ogólnie, a nie w przypadku ugryzień i kawałków. Moja propozycja to: zmień cały kod na wskazówkę: jest to operacja jednorazowa, ale upewnij się, że wszyscy twoi programiści mają tę samą wtyczkę (AnyEdit) z tymi samymi ustawieniami dla projektu.
źródło
Użyłem tego polecenia dla git:
git config --global core.whitespace cr-at-eol
Usuwa
^M
znaki końcowe.źródło