Как автоматически отформатировать / сделать отступ XML / HTML в Notepad ++

628

Есть ли способ переопределить блок кода? Я ищу что-то похожее на Ctrl+ Shift+ Fв Eclipse (Автоформат / Отступ).

Чтобы быть ясным,

  • Я уже знаю, как форматировать XML вне Notepad ++ (как уже упоминалось, Eclipse работает отлично), поэтому мне не нужны ссылки на другие инструменты форматирования XML.
  • Я специально работаю с XML и HTML.
  • В идеале, связывание клавиш так же удобно, как в Eclipse, поэтому мне не нужно нарушать рабочий процесс.

Я уже знаю о NppAutoIndent - он не будет работать, так как я работаю с XML, HTML и CSS.

SBoss
источник

Ответы:

838

Поскольку я обновился до 6.3.2, я использую XML Tools.

  • установить XML Tools через плагин Admin.
  • используйте сочетание клавиш Ctrl+ Alt+ Shift+ B( или меню → Плагины → Инструменты XML → Pretty Print)

В более старых версиях: меню → TextFX → HTML Tidy → Tidy: переопределить XML.

remipod
источник
11
Я установил версию 5.9.8 и добавил TextFX в качестве плагина. Плагины -> Менеджер плагинов -> Показать менеджер плагинов. Выберите TextFX и установите. После перезапуска npp должно появиться меню «TextFS».
ремипод
19
Остерегайтесь отсутствующей ошибки libtidy.dll в последних версиях при установке плагина HTMLTidy.
Амос М. Карпентер
11
Инструменты XML будут форматировать XHTML, но не HTML. Попробуйте отформатировать это: <form><input><input><input><input><input></form>. Ваш код должен быть в этом формате, чтобы работать, что будет <form><input /><input /><input /><input /><input /></form>
мешать
1
Найдите параметр «Формат» в меню: «Расширения» -> «Инструменты XML» -> «
Хорошая
1
Будьте очень осторожны с этим, он превратит <div> </ div> в <div />, если div пустые. Это может быть серьезным изменением для веб-браузеров, отображающих стили CSS.
Тимоти Гонсалес
53

Установите плагин Tidy2. У меня Notepad ++ v6.2.2, и Tidy2 пока работает нормально.

Дима
источник
5
Во-вторых, Tidy2 выполнил работу по разметке HTML и делает ее очень хорошо.
DWils
2
Я третий это. Инструменты XML не работали для меня и не могли заставить его работать с TextFX
Кристиан Вьельма
4
Спасибо .. «Инструменты XML» не работали с определенными файлами, и это то, что работало для меня.
Субхаши
4
Осторожно: некоторые элементы HTML-символов заменяются их символами Юникод при уборке. Это не зависит от конфигурации Tidy2 или кодировки документа. Например, "& # 8217;" перед уборкой становится "'" ("умная" одинарная кавычка) после уборки. Это сделало Tidy2 непригодным для меня. Проект не обновлялся с 2012 года.
trebormf
никакой вариант использования табуляции вместо пробелов для отступа убивает это для меня.
Кори
36

Для тех, кто не знает, npp имеет большую поддержку от плагинов и других проектов. Вы можете скачать эти плагины с SourceForge .

введите описание изображения здесь

Вам нужно XML Toolsотформатировать текст в n ++

После того, как вы загрузили XML Tools..

Выход из Блокнота ++

Перейти к C:\Program File\Notepad++.... Ваша установленная папка N ++.

  1. Поместите ниже файлы из инструментов XML, которые вы загрузили в корневую папку npp copy replace

введите описание изображения здесь

  1. Перейдите в ..\Pluginsподпапку и поместите ниже загруженный файл

введите описание изображения здесь

Перезагрузите и наслаждайтесь !!!

Ctrl+ Alt+ Shft+ Bдля форматирования.

Какой-то Java парень
источник
4
Кажется, у меня нет менеджера плагинов - у меня есть блокнот ++ 7.3.3.
Сова
14

Уже третий раз я устанавливаю Windows и npp, и через некоторое время я понимаю, что функция tidy больше не работает. Поэтому я ищу решение, зайду в эту ветку, а затем с помощью еще нескольких тем я наконец исправлю это. Я выложу сводку всех моих действий раз и навсегда.

  1. Установите плагин TextFX: Плагины -> Менеджер плагинов -> Показать менеджер плагинов. Выберите символы TextFX и установите. После перезапуска npp должно появиться меню «TextFX». (Фото: @remipod).

  2. Установите libtidy.dll, вставив папку Config из старого пакета npp: следуйте инструкциям в этом ответе .

  3. После наличия папки Config в вашем последнем месте установки npp (обычно это C: \ Program Files (x86) \ Notepad ++ \ plugins), npp необходим доступ на запись в эту папку. Щелкните правой кнопкой мыши папку «Config» -> «Свойства» -> вкладка «Безопасность» -> выберите «Пользователи», нажмите «Изменить» -> установите флажок «Полный доступ», чтобы разрешить доступ для чтения и записи. Обратите внимание, что для этого вам необходимы права администратора.

  4. Перезапустите npp и убедитесь, что TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML работает.

Владимир Григоров
источник
Если вы используете параметр allowAppDataPlugins (разрешающий плагин для каждого пользователя), вы можете сделать это, поместив папку tidy из шага 2 в каталог пользовательских плагинов и пропустив шаг 3.
palswim
@palswim: Хорошо, спасибо! Ваше решение чище, когда один пользователь использует NPP.
Владимир Григоров
9

Notepad ++ не предоставляет такую ​​функцию по умолчанию. Но вы можете использовать некоторые онлайн-инструменты для автоформатирования текста, такие как https://www.freeformatter.com/xml-formatter.html .

Помогает. :)

Дакш Агравал
источник
2
Хотя этот ответ является обходным путем, а не решением вопроса ОП, это единственное, что сработало для меня. И у XML Tools, и у Tidy2 есть проблемы.
Найджел Олдертон
8

Мне пришлось обновить настройки прокси в разделе «Плагины» -> «Диспетчер плагинов» -> «Показать диспетчер плагинов» -> «Настройки», чтобы увидеть все подключаемые модули в списке «Доступно».

После этого установка «XML Tools» была легкой и выполнила запрошенную работу, как описано выше.

Оливер Мейер
источник
При использовании «XML Tools» отступ был не таким, как я требовал для кода HTML + Javascript. Найденный плагин «UniversalIndentGUI» прекрасно справляется со своей задачей, устанавливая язык HTB (HTML, XML, XSL), а затем запускает «Отступ текста» из меню плагинов.
GuruM
6

Чтобы прямо ответить на ОП, взгляните на сайт этого парня: Thomas Hunter Notepad ++ Tidy for XML . Следуйте простым шагам, и вы получите очень хорошее форматирование вашего XML прямо внутри АЭС. Пока единственная аномалия, которую я обнаружил, это вложенные самозакрывающиеся элементы EG:

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

Будет приведено в порядок:

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

Возможно, есть способ исправить это, но в настоящее время удалось уменьшить количество строк в моем документе на 300 Кб, и эту конкретную аномалию можно обойти.

delliottg
источник
1

Я использую Блокнот 7.6 с «Администратором плагинов» и не смог найти XML Tools.
Мне пришлось установить его вручную, как @ some-java-guy, в своем ответе, за исключением того, что моя папка плагинов была расположена здесь: C:\Users\<my username>\AppData\Local\Notepad++\plugins
в этом каталоге я создал новый каталог (с именем XmlTools) и скопировал туда XMLTools.dll. (И я скопировал все зависимости в каталог Notepad ++ в программных файлах.)

Бьерн
источник
В Notepad ++ v7.8.4 «Инструменты XML» доступны в «Администраторе плагина». Возможно, раньше была несовместимость или что-то в этом роде. По-прежнему кажется, что он также активно разрабатывается, учитывая, что последний коммит был 2 дня назад на github.com/morbac/xmltools
Мика Линдстрем
1

Просто установите последнюю версию Notepad ++ и установите отступ By fold. В строке меню выберите «Плагины» -> «Администрирование плагинов» и выделите отступ «Свернуть» и установить. Работает лучше

Даниэль Ньямасьо
источник
это должно быть ответом акцептора сейчас, потому что я не могу заставить работать инструмент xml или tidy2. В любом случае, мы можем назначить ярлык для этого использования?
Ирфанди Д. Венди
Последняя версия Notepad ++ (7.8.6) очень разочаровывает. Я попытался установить IndentByFold в версию 7.5.6, и он сломал замечательный плагин AutoSave от Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Извините: для меня это нарушитель соглашения. (!) Вероятно, нет ничего плохого как такового в IndentByFold Фрэнка Фесевура. В настоящее время я виню последнюю версию Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Плачевно.
Хенке
Что касается меня, это сработало. Я использую v7.8.4
Даниэль Ньямасьо
Здесь я рискую сползти не по теме, но если кто-то может сообщить о версии Notepad ++ более поздней, чем 7.5.6, которая работает с плагином AutoSave 1.60 от Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , я был бы более чем счастлив переключиться на эту версию. Если нет - я не смогу обновить Notepad ++ 7.5.6 до более поздней версии. Версия 0.7 IndentByFold работает для меня тоже. Но я возражаю против размещения (конечных) пробелов в пустых строках, что делает IndentByFold.
Хенке
Моя версия Notepad ++ - 7.5.6. Я сейчас попробовал 1) XML Tools, 2) HTML Tidy, 3) Tidy2 и 4) IndentByFold 0.7. Инструменты XML вроде как «работают», но создают ужасную путаницу в моем HTML-коде, https://i.imgur.com/oLOB30Z.png . Ни HTML Tidy, ни Tidy2 не работают вообще. IndentByFold 0.7 - единственное решение, которое я могу найти. Мне не нравится, что он ставит (конечные) пробелы в пустые строки, но я могу жить с этим. Я до сих пор не поддерживаю этот ответ (Даниэль Ньямасьо). Причина в том, что я категорически не согласен с советом использовать последнюю версию Notepad ++.
Хенке