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.

SBoss
źródło

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.

remipod
źródło
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.

Dima
źródło
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.

Jakiś facet z Jawy
źródło
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.

Vladimir Grigorov
źródło
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. :)

Daksh Agrawal
źródło
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.

Oliver Meyer
źródło
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ść.

delliottg
źródło
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.)

Björn
źródło
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

Daniel Nyamasyo
źródło
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