Jak automatycznie formatować / wcięcia XML / HTML w Notepad ++


627

Czy istnieje sposób ponownego wcięcia bloku kodu? Szukam czegoś podobnego do Ctrl+ Shift+ Fw Eclipse (Auto-Format / Indent).

Żeby było jasne,

  • Wiem już, jak sformatować XML poza Notepad ++ (Eclipse działa dobrze, jak wspomniano), więc nie potrzebuję wielu linków do innych narzędzi do formatowania XML.
  • W szczególności pracuję z XML i HTML.
  • Idealnie byłoby, gdyby klawisz był tak wygodny jak ten w Eclipse, więc nie muszę przerywać pracy.

Wiem już o NppAutoIndent - nie zadziała, ponieważ pracuję z XML, HTML i CSS.


Odpowiedzi:


837

Od czasu aktualizacji do 6.3.2 używam XML Tools.

  • zainstaluj Narzędzia XML za pośrednictwem Administratora wtyczek.
  • użyj skrótu Ctrl+ Alt+ Shift+ B( lub menu → Wtyczki → Narzędzia XML → Pretty Print)

W starszych wersjach: menu → TextFX → HTML Tidy → Tidy: Reindent XML.


11
Zainstalowałem wersję 5.9.8 i dodałem TextFX jako wtyczkę. Wtyczki -> Menedżer wtyczek -> Pokaż menedżera wtyczek. Wybierz TextFX i zainstaluj. Po ponownym uruchomieniu npp powinno być widoczne menu „TextFS”.
— remipod

19
Uważaj na brakujący błąd libtidy.dll w najnowszych wersjach podczas instalowania wtyczki HTMLTidy.
— Amos M. Carpenter

11
Narzędzia XML sformatują XHTML, ale nie HTML. Spróbuj sformatować tak: <form><input><input><input><input><input></form>. Twój kod musi być w tym formacie, aby działał, co może stanowić <form><input /><input /><input /><input /><input /></form>
— przełom

1
Znajdź opcję Format w menu: Rozszerzenia-> Narzędzia XML -> Ładny druk (z
— podziałami

1
Bądź bardzo ostrożny, zmieni to <div> </div> w <div />, jeśli div są puste. To może być przełomowa zmiana dla przeglądarek internetowych wyświetlających style css.
— Timothy Gonzalez,

53

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


5
Po drugie, Tidy2 wykonał zadanie znaczników HTML i wykonuje bardzo dobrą robotę.
— DWils,

2
Trzeci to. Narzędzia XML nie działały dla mnie i nie mogły sprawić, aby działały z TextFX
— Christian Vielma

4
Dzięki .. „Narzędzia XML” nie działały na niektórych plikach i to właśnie działało dla mnie.
— Subhashi

4
Uwaga: niektóre elementy HTML są zastępowane znakami Unicode podczas sprzątania. Jest to niezależne od konfiguracji Tidy2 lub kodowania dokumentów. Na przykład „& # 8217;” zanim sprzątanie staje się „” („mądry” pojedynczy cytat) po sprzątaniu. To sprawiło, że Tidy2 było dla mnie bezużyteczne. Projekt nie był aktualizowany od 2012 roku.
— trebormf

brak opcji używania tabulatorów zamiast spacji dla wcięć zabija to dla mnie.
— cori

36

Dla tych, którzy nie wiedzą, npp ma dużo wsparcia ze strony wtyczek i innych projektów. Możesz pobrać te wtyczki z SourceForge .

wprowadź opis zdjęcia tutaj

Potrzebujesz XML Tools sformatować tekst w n ++

Po pobraniu XML Tools..

Wyjdź z Notepad ++

Idź do C:\Program File\Notepad++.... Twój zainstalowany folder N ++.

  1. Umieść poniżej plików z narzędzi XML, które pobrałeś w folderze głównym npp copy replace

wprowadź opis zdjęcia tutaj

  1. Przejdź do ..\Pluginspodfolderu i umieść poniżej pobranego pliku

wprowadź opis zdjęcia tutaj

Uruchom ponownie i ciesz się !!!

Ctrl+ Alt+ Shft+ Bdo sformatowania.


4
Wydaje mi się, że nie mam menedżera wtyczek w moim - mam notatnik ++ 7.3.3.
— Sowa

14

To już trzeci raz, kiedy instaluję Windows i NPP i po pewnym czasie zdaję sobie sprawę, że funkcja porządkowania już nie działa. Więc szukam rozwiązania, wchodzę do tego wątku, a następnie przy pomocy kilku innych wątków, w końcu go naprawiam. Raz na zawsze podsumuję wszystkie moje działania.

  1. Zainstaluj wtyczkę TextFX: Wtyczki -> Menedżer wtyczek -> Pokaż menedżera wtyczek. Wybierz Znaki TextFX i zainstaluj. Po ponownym uruchomieniu npp powinno być widoczne menu „TextFX”. (kredyty: @remipod).

  2. Zainstaluj libtidy.dll, wklejając folder Config ze starego pakietu npp: Postępuj zgodnie z instrukcjami w tej odpowiedzi .

  3. Po utworzeniu folderu Config w najnowszym miejscu instalacji npp (zwykle C: \ Program Files (x86) \ Notepad ++ \ plugins), npp potrzebuje dostępu do zapisu w tym folderze. Kliknij prawym przyciskiem myszy Folder konfiguracji -> Właściwości -> karta Zabezpieczenia -> wybierz Użytkownicy, kliknij Edytuj -> zaznacz Pełna kontrola, aby zezwolić na dostęp do odczytu / zapisu. Pamiętaj, że potrzebujesz do tego uprawnień administratora.

  4. Zrestartuj npp i sprawdź TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML działa.


Jeśli używasz „allowAppDataPlugins” ustawienie (pozwalającą wtyczek poszczególnych użytkowników), można to zrobić poprzez umieszczenie porządek w folderze z kroku 2 w katalogu plugins użytkownika i omijając etap 3.
— palswim

@palswim: Fajnie, dziękuję! Twoje rozwiązanie jest czystsze, gdy jeden użytkownik korzysta z npp.
— Vladimir Grigorov

9

Notepad ++ domyślnie nie zapewnia takiej funkcji. Ale możesz użyć niektórych narzędzi online do automatycznego formatowania tekstu, takich jak https://www.freeformatter.com/xml-formatter.html .

To pomaga. :)


2
Chociaż ta odpowiedź jest raczej obejściem niż rozwiązaniem pytania PO, jest to jedyna rzecz, która zadziałała dla mnie. Zarówno narzędzia XML, jak i Tidy2 mają problemy.
— Nigel Alderton,

8

Musiałem zaktualizować ustawienia proxy w obszarze Wtyczki -> Menedżer wtyczek -> Pokaż Menedżera wtyczek -> Ustawienia, aby zobaczyć wtyczki na liście „Dostępne”.

Następnie instalacja „Narzędzi XML” była łatwa i wykonała zlecenie zgodnie z powyższym opisem.


Przy użyciu „Narzędzi XML” wcięcie nie było takie, jak wymagane dla kodu HTML + JavaScript. Znaleziono wtyczkę „UniversalIndentGUI”, która dobrze wykonuje zadanie, ustawiając język na HTB (HTML, XML, XSL), a następnie uruchamiając polecenie „Wcięcie tekstu” z menu wtyczek.
— GuruM

6

Aby bezpośrednio odpowiedzieć na OP, zajrzyj na stronę tego faceta: Thomas Hunter Notepad ++ Tidy for XML . Proste kroki do naśladowania, a otrzymasz bardzo ładne formatowanie XML bezpośrednio w NPP. Jak dotąd jedyną anomalią, jaką znalazłem, są zagnieżdżone elementy samozamykające się EG:

<OuterTag>Text for outer element<SelfClosingTag/></OuterTag>

Zostanie uporządkowany do:

<OuterTag>Text for outer element
<SelfClosingTag/></OuterTag>

Może to być sposób, aby to naprawić, ale na razie udało się zmniejszyć liczbę wierszy w moim dokumencie o 300 tys. I tę szczególną anomalię można obejść.


1

Używam Notatnika 7.6 z „Administratorem wtyczek” i nie mogłem znaleźć Narzędzi XML.
Musiałem zainstalować go ręcznie, jak zrobił to @ some-java-guy w swojej odpowiedzi, tyle że folder wtyczek znajdował się tutaj: C:\Users\<my username>\AppData\Local\Notepad++\plugins
W tym katalogu utworzyłem nowy katalog (o nazwie XmlTools) i skopiowałem tam plik XMLTools.dll. (I skopiowałem wszystkie zależności do katalogu Notepad ++ w plikach programu.)


W Notepad ++ v7.8.4 „Narzędzia XML” są dostępne w „Administratorze wtyczek”. Być może kiedyś istniała niezgodność lub coś takiego. Nadal wydaje się, że jest również aktywnie rozwijany, biorąc pod uwagę, że ostatnie zatwierdzenie miało miejsce 2 dni temu na github.com/morbac/xmltools
— Micah Lindstrom

1

Wystarczy zainstalować najnowszy notatnik ++ i zainstalować wcięcie Składanie. Na pasku menu wybierz Wtyczki -> Wtyczki Administrator i wybierz wcięcie Przez złożenie i instalację. Działa najlepiej


powinna to być odpowiedź na pytanie, ponieważ nie mogę uruchomić narzędzia xml ani tidy2 do pracy. W każdym razie, czy możemy przypisać skrót do tego użycia?
— Irfandi D. Vendy

Najnowsza wersja Notepad ++ (7.8.6) jest bardzo rozczarowująca. Próbowałem zainstalować IndentByFold do wersji 7.5.6 i złamało to wspaniałą wtyczkę AutoSave autorstwa Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Przepraszam: dla mnie to przełamanie umowy. (!) Prawdopodobnie nic złego samo w sobie z IndentByFold autorstwa Franka Fesevura. Na razie obwiniam najnowszą wersję Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Żałosny.
— Henke

Jak dla mnie to zadziałało. Korzystam z wersji 7.4.4
— Daniel Nyamasyo

Ryzykuję zsunięcie się tutaj z tematu, ale jeśli ktoś może zgłosić wersję Notepad ++ późniejszą niż 7.5.6, która współpracuje z wtyczką AutoSave 1.60 autorstwa Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , I z przyjemnością przejdzie do tej wersji. Jeśli nie - nie ma możliwości zaktualizowania Notepad ++ 7.5.6 do nowszej wersji. Wersja 0.7 IndentByFold też działa dla mnie. Ale sprzeciwiam się umieszczaniu (końcowych) spacji w pustych wierszach, co robi IndentByFold.
— Henke

Moja wersja Notepad ++ to 7.5.6. Próbowałem teraz 1) Narzędzia XML, 2) HTML Tidy, 3) Tidy2 ORAZ 4) IndentByFold 0.7. Narzędzia XML w pewnym sensie „działają”, ale powodują żałosny bałagan mojego kodu HTML, https://i.imgur.com/oLOB30Z.png . Ani HTML Tidy, ani Tidy2 w ogóle nie działają. IndentByFold 0.7 to jedyne rozwiązanie, jakie mogę dostać do pracy. Nie podoba mi się, że stawia (końcowe) spacje w pustych rzędach, ale mogę z tym żyć. Nadal nie popieram tej odpowiedzi (autor: Daniel Nyamasyo). Powodem jest to, że zdecydowanie nie zgadzam się z poradą dotyczącą używania najnowszej wersji Notepad ++.
— Henke
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.