Automatyczne wcięcie w Notepad ++

187

Zawsze piszemy kod w następujący sposób:

void main(){
  if(){
    if()
    }

Tekst alternatywny

Ale kiedy używam Notepad ++ , wyświetlacz jest następujący:

void main(){
if(){
if()
}

Tekst alternatywny

Jak używać Notepad ++ do automatycznego wcięcia?

Dzięki Jonathanowi ustawiłem go, ale nie przynosi to żadnego efektu. Migawka znajduje się poniżej:

Tekst alternatywny

Używam Notepad ++ w wersji 5.1.3.

Turion
źródło

Odpowiedzi:

135

Notepad ++ automatycznie wstawi kolejne wcięcia tylko wtedy, gdy ręcznie wcniesz pierwszy wiersz w bloku; w przeciwnym razie możesz ponownie wciąć kod po użyciu TextFX > TextFX Edit > Reindent C++ code.

scronid
źródło
1
Jeśli w twojej wersji brakuje biblioteki DLL, możesz ją pobrać z wersji ZIP 5.9.0. Niektóre późniejsze wersje nie zawierały tej biblioteki DLL. notepad-plus-plus.org/download/v5.9.0.html
Fostah
2
Znalazłem to, szukając sposobu na sformatowanie kodu javascript. Okazuje się, że działa to również w przypadku plików .js!
sacredfaith
7
@Fostah: możesz także zainstalować „Text FX Character” poprzez> Wtyczki> Menedżer wtyczek> Pokaż Menedżera wtyczek
Adrien Be
@scronide, czy istnieje do tego klawisz skrótu?
Pacerier,
Zauważ, że pomimo nazwy absolutnie poprawne było również wcięcie kodu javascript, którego próbowałem naprawić. Nie ma powodu, bym się tego nie spodziewał, tylko wspominając, ponieważ nazwa jest raczej specyficzna. Nie wiem, dlaczego autor tej biblioteki uznał, że musi dać pierwszeństwo C ++ ...: D
neminem
99

Jeśli menu TextFX nie istnieje, musisz pobrać i zainstalować wtyczkę. Wtyczki-> Menedżer wtyczek-> Pokaż menedżera wtyczek, a następnie sprawdź znaki TextFX wtyczki . Kliknij „zainstaluj”, uruchom ponownie Notepad ++.

W wersji Notepad ++ v6.1.3 rozwiązuję za pomocą: Plugin Manager-> Show Plugin Manager **, a następnie zaznaczam wtyczkę „Indent By Fold”

nieznanych
źródło
2
Wcięcie po złożeniu jest niesamowite. Fakt, że działa w dowolnym formacie ( XML, C / ++ / # itp. ) Jest świetny. Jedynym problemem jest stos „cofania”. W przypadku użycia, jeśli chcesz cofnąć do pewnego momentu przed wcięciem, musisz cofnąć każde ponowne wcięcie wiersza, ponieważ nie jest ono dodawane do stosu jako pojedyncze polecenie. Zasadniczo należy zachować ostrożność podczas pracy z długimi plikami.
Dan Lugg
Cześć @ Czy problem cofania wydaje się rozwiązany w nowszej wersji wcięcia przez fold ...
538ROMEO
1
Tak, nie istnieje i nie ma Menedżera wtyczek.
Beyondo
31

Wydaje się, że istnieje przynajmniej opcja automatycznego formatowania XML. Można go znaleźć pod adresem TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.

Abhishek
źródło
2
potrzebujesz do tego wtyczki TextFx
arviman
29

Większość programistów programów do edycji tekstu niewłaściwie używa tej nazwy (automatyczne wcięcie). Prawidłowa nazwa to „utrzymuj wcięcie”. Auto-wcięcie jest tym, czego naprawdę chcesz, ale nie jest zaimplementowane.

Chciałbym również zobaczyć tę funkcję w Notepad ++.

Peter Mortensen
źródło
22

W najnowszej wersji (przynajmniej) możesz to znaleźć poprzez:

  • Ustawienia (menu)
  • Preferencje...
  • MISC (zakładka)
  • dolna lewa lista pól wyboru
  • Automatyczne wcięcie ” jest drugą opcją w tej grupie

[ EDYCJA ] Chociaż nie sądzę, że ma najlepszą implementację automatycznego wcięcia. Sprawdź więc, czy masz wersję 5.1 - automatyczne wcięcie przeszło niedawno przegląd, więc automatycznie poprawia wcięcie.


Zauważ też, że brakuje ci bloku drugiego if:

void main(){
  if(){
    if() { }  # here
  }
}
Jonathan Lonowski
źródło
8
Zauważ, że to ustawienie automatycznego wcięcia w Notepad ++ zakłada, że ​​pierwsze wcięcie w bloku wykonujesz ręcznie; nie formatuje automatycznie kodu.
scronide
Rozumiem teraz twoje znaczenie, proszę wybacz mojemu biednemu inżynierowi ... Moim językiem ojczystym jest chiński ...
Turion
14

Możesz użyć wtyczki „Wcięcie przez złożenie”. Zainstaluj go z menedżera wtyczek. Działa dla mnie dobrze.

Aki143S
źródło
2
Wcięcie po fold jest świetne, z tym wyjątkiem, że wcina się tylko po fold;) W sytuacjach, w których wcięto inicjalizację listy, chyba że język używa znaku składającego do ograniczenia inicjalizatora, skończy się to wcięciem. Przykładem jest inicjalizacja tablic wieloliniowych w PHP przy użyciu array( ... ), gdzie ()nie są składane.
Dan Lugg
5

W wersji 6.6.8 zainstalowałem wtyczkę NppAutoIndent z wtyczek> Menedżer wtyczek> Pokaż menedżera wtyczek. Następnie wybrałem opcję Inteligentne wcięcie we wtyczce> NppAutoIndent. Mam nadzieję że to pomoże.

TheRS
źródło
4

Mała aktualizacja: możesz pominąć wtyczkę TextFX i po prostu użyć Tidy2 . Tutaj możesz skonfigurować własne reguły formatowania dla różnych typów kodów. Łatwy w instalacji i usuwaniu

Notepad ++> Wtyczki> Menedżer wtyczek> Pokaż menedżera wtyczek

i po prostu wyszukaj Tidy2 i zainstaluj go. Gotowe.

Sven Ya
źródło
Czy możesz wyjaśnić coś więcej?
Dieter Meemken 14.04.16
Więcej informacji na temat konfiguracji można znaleźć tutaj: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya
jest to dość trudne w użyciu w porównaniu do innych wtyczek
Gaurav khurana
4

Dla tych, którzy używają Notepad ++ v6.8.1 i nowszych, ustawienie automatycznego wcięcia jest teraz umieszczone w menu UstawieniaPreferencjeMISC. Automatyczne wcięcie .

Wpisz opis zdjęcia tutaj

Luke
źródło
3

Wypróbuj wtyczkę UniversalIndentGUI dla Notepad ++. Ponownie wcina kod na podstawie niektórych parametrów. To działało dla mnie dobrze.

imriss
źródło
3
Pamiętaj, że link prowadzi bezpośrednio do pobrania. Strona jest: universalindent.sourceforge.net . Ponadto wydaje się, że jest to GUI do konfigurowania narzędzia do reformowania, zamiast automatycznego formatowania tekstu na początek.
Martin Bonner obsługuje Monikę
2

To może wydawać się głupie, ale w pierwotnym pytaniu Turion edytował zwykły plik tekstowy. Upewnij się, że wybrałeś właściwy język z menu Język

kurdtpage
źródło
2
Menu TextFX → TextFX Edit → Reindent C++ code

wprowadź opis zdjęcia tutaj

Ale Notepad ++ nie jest dostarczany z tą wtyczką „Text FX Character”. Będziesz musiał zainstalować go za pośrednictwem

Plugins → Plugin Manager → Show Plugin Manager.

Aby dodać skrót do wcięcia .

Kliknij UstawieniaMapowanie skrótów ... ustaw preferowany klawisz skrótu. Wolę Ctrl+ =.

Wpisz opis zdjęcia tutaj

Saurav Sahu
źródło
1

Zainstaluj wtyczkę Tidy2. Mam Notepad ++ v6.2.2, a Tidy2 działa do tej pory dobrze.

użytkownik9717890
źródło
1

Najpierw pobierz wtyczkę, zarządzaj tym linkiem a następnie rozpakuj folder zip i skopiuj go do folderu programu / notatnika ++. następnie ponownie uruchom notatnik ++. wtedy zobaczysz menedżera wtyczek w menu wtyczek. następnie kliknij menedżer wtyczek, a następnie kliknij pokaż menedżera wtyczek. Pokazuje całą listę wtyczek. z listy u dołu znajdź narzędzia XML, zaznacz je i zainstaluj. następnie ponownie uruchom notatnik ++. Po otwarciu dokumentu, a następnie wtyczki / narzędzia xml / ładny zwykły (tekst wcięcia), a następnie cieszyć się.

ghosh tapos
źródło
0

Dla tych, którzy używają wersji 7.8.5, ustawienia Auto-wcięcia znajdują się teraz w „Ustawienia” -> „Preferencje ...” -> „Autouzupełnianie”.

wprowadź opis zdjęcia tutaj

ooi18
źródło
0

Spróbuj zapisać plik wcześniej, a następnie zostanie wcięty.

Sh13
źródło
To może być komentarz!
Farbod Ahmadian
Czy możesz coś więcej rozwinąć?
Toto