Cómo formatear automáticamente / sangrar XML / HTML en Notepad ++

628

¿Hay alguna manera de volver a sangrar un bloque de código? Estoy buscando algo similar a Ctrl+ Shift+ Fen Eclipse (formato automático / sangría).

Para ser claro,

  • Ya sé cómo formatear XML fuera de Notepad ++ (Eclipse funciona bien, como se mencionó), así que no necesito un montón de enlaces a otras herramientas de formato XML.
  • Estoy trabajando específicamente con XML y HTML.
  • Idealmente, hay una combinación de teclas tan conveniente como la de Eclipse, por lo que no tengo que interrumpir mi flujo de trabajo.

Ya sé sobre NppAutoIndent, no funcionará, ya que estoy trabajando con XML, HTML y CSS.

SBoss
fuente

Respuestas:

838

Desde que actualicé a 6.3.2, uso XML Tools.

  • instale XML Tools a través del Administrador de complementos.
  • use el acceso directo Ctrl+ Alt+ Shift+ B( o menú → Complementos → Herramientas XML → Pretty Print)

En versiones anteriores: menú → TextFX → HTML Tidy → Tidy: Reindent XML.

remipod
fuente
11
Instalé la versión 5.9.8 y agregué TextFX como complemento. Complementos -> Administrador de complementos -> Mostrar administrador de complementos. Seleccione TextFX e instálelo. Después de reiniciar npp, el menú 'TextFS' debería estar visible.
Remipod
19
Tenga cuidado con el error libtidy.dll que falta en las versiones recientes al instalar el complemento HTMLTidy.
Amos M. Carpenter
11
XML Tools formateará XHTML, pero no HTML. Intente formatear la siguiente: <form><input><input><input><input><input></form>. El código tiene que estar en este formato para el trabajo, que será un factor decisivo para muchos desarrolladores:<form><input /><input /><input /><input /><input /></form>
thdoan
1
Busque la opción Formato en el menú: Extensiones-> Herramientas XML -> Impresión bonita (con saltos de línea)
fl0w
1
Tenga mucho cuidado con esto, convertirá <div> </div> en <div /> si los div están vacíos. Esto podría ser un cambio radical para los navegadores web que representan estilos CSS.
Timothy Gonzalez el
53

Instale el complemento Tidy2. Tengo Notepad ++ v6.2.2, y Tidy2 funciona bien hasta ahora.

Dima
fuente
55
En segundo lugar, Tidy2 hizo el trabajo para el marcado HTML y hace un muy buen trabajo.
DWils
2
Tercero esto. XML Tools no funcionó para mí y no pudo hacerlo funcionar con TextFX
Christian Vielma
44
Gracias ... 'XML Tools' no funcionó en ciertos archivos y esto es lo que funcionó para mí.
Subhashi
44
Cuidado: ciertas entidades de caracteres HTML se reemplazan con su carácter unicode cuando ordena. Esto es independientemente de la configuración de Tidy2 o la codificación del documento. Por ejemplo, "& # 8217;" antes de ordenar se convierte en "'" (comilla simple "inteligente") después de ordenar. Esto hizo que Tidy2 fuera inutilizable para mí. El proyecto no se ha actualizado desde 2012.
trebormf
ninguna opción para usar pestañas en lugar de espacios para sangría me mata.
cori
36

Para aquellos que no lo saben, npp tiene mucho soporte de complementos y otros proyectos. Puede descargar esos complementos de SourceForge .

ingrese la descripción de la imagen aquí

Necesita XML Toolsformatear su texto en n ++

Después de haber descargado XML Tools...

Salir de Notepad ++

Vaya a C:\Program File\Notepad++.... Su carpeta instalada de N ++.

  1. Coloque a continuación los archivos de las herramientas xml que descargó en la carpeta raíz npp por copy replace

ingrese la descripción de la imagen aquí

  1. Ir a la ..\Pluginssubcarpeta y colocar el archivo descargado debajo

ingrese la descripción de la imagen aquí

Reiniciar y disfrutar !!!

Ctrl+ Alt+ Shft+ Bpara formatear.

Un chico de java
fuente
44
Parece que no tengo un administrador de complementos mío: tengo Notepad ++ 7.3.3.
Búho
14

Ha sido la tercera vez que instalo Windows y npp y después de un tiempo me doy cuenta de que la función ordenada ya no funciona. Así que busco una solución en Google, vengo a este hilo, luego, con la ayuda de unos cuantos más, finalmente lo soluciono. Pondré un resumen de todas mis acciones de una vez por todas.

  1. Instale el complemento TextFX: Complementos -> Administrador de complementos -> Mostrar administrador de complementos. Seleccione los caracteres TextFX e instálelos. Después de reiniciar npp, el menú 'TextFX' debería estar visible. (créditos: @remipod).

  2. Instale libtidy.dll pegando la carpeta Config desde un paquete npp antiguo: siga las instrucciones en esta respuesta .

  3. Después de tener una carpeta de configuración en su último destino de instalación de npp (generalmente C: \ Archivos de programa (x86) \ Notepad ++ \ plugins), npp necesita acceso de escritura a esa carpeta. Haga clic con el botón derecho en la carpeta Config -> Propiedades -> pestaña Seguridad -> seleccione Usuarios, haga clic en Editar -> marque Control total para permitir el acceso de lectura / escritura. Tenga en cuenta que necesita privilegios de administrador para hacerlo.

  4. Reinicie npp y verifique TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML works.

Vladimir Grigorov
fuente
Si está utilizando la configuración "allowAppDataPlugins" (que permite complementos por usuario), puede hacerlo colocando la carpeta ordenada del paso 2 en su directorio de complementos de usuario y omitiendo el paso 3.
palswim
@palswim: Bien, gracias! Su solución es más limpia cuando un usuario usa el npp.
Vladimir Grigorov
9

Notepad ++ no proporciona ninguna característica de este tipo por defecto. Pero puede usar algunas herramientas en línea para autoformar texto como https://www.freeformatter.com/xml-formatter.html .

Ayuda. :)

Daksh Agrawal
fuente
2
Aunque esta respuesta es una solución alternativa en lugar de una solución a la pregunta de los OP, es lo único que funcionó para mí. Tanto XML Tools como Tidy2 tienen problemas.
Nigel Alderton
8

Tuve que actualizar la configuración del proxy en Complementos -> Administrador de complementos -> Mostrar administrador de complementos -> Configuración para ver los complementos en la lista "Disponible".

Después de eso, instalar "Herramientas XML" fue fácil e hizo el trabajo solicitado como se describió anteriormente.

Oliver Meyer
fuente
Al usar "Herramientas XML", la sangría no era la que necesitaba para el código HTML + Javascript. El complemento "UniversalIndentGUI" encontrado funciona bien configurando el idioma en HTB (HTML, XML, XSL) y luego ejecuta 'Sangría el texto' desde el menú de complementos.
GuruM
6

Para responder directamente al OP, eche un vistazo al sitio de este tipo: Thomas Hunter Notepad ++ Tidy for XML . Sencillos pasos a seguir y obtendrá un formato muy agradable de su XML directamente dentro de NPP. Hasta ahora, la única anomalía que he encontrado es con elementos de cierre automático anidados EG:

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

Será ordenado hasta:

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

Puede haber una manera de solucionar esto, pero por el momento, se logró reducir el número de líneas en mi documento en 300k y esta anomalía en particular se puede solucionar.

delliottg
fuente
1

Estoy usando el Bloc de notas 7.6 con "Administrador de complementos" y no pude encontrar Herramientas XML.
Tuve que instalarlo manualmente como lo hizo @ some-java-guy en su respuesta, excepto que mi carpeta de complementos se encuentra aquí: C:\Users\<my username>\AppData\Local\Notepad++\plugins
en ese directorio creé un nuevo directorio (llamado XmlTools) y copié XMLTools.dll allí. (Y copié todas las dependencias en el directorio Notepad ++ en los archivos de programa).

Björn
fuente
Con Notepad ++ v7.8.4, "Herramientas XML" está disponible dentro de "Administrador de complementos". Quizás solía haber una incompatibilidad o algo así. Todavía parece que también está desarrollado activamente, teniendo en cuenta que la última confirmación fue hace 2 días en github.com/morbac/xmltools
Micah Lindstrom
1

Simplemente instale el último bloc de notas ++ e instale la sangría por pliegue. En la barra de menú, seleccione Complementos -> Administrador de complementos y seleccione sangría Por pliegue e instalación. Funciona mejor

Daniel Nyamasyo
fuente
esta debería ser la respuesta del aceptador ahora, porque no puedo hacer que la herramienta xml o tidy2 funcionen. De todos modos, ¿podemos asignar atajos para este uso?
Irfandi D. Vendy
La última versión de Notepad ++ (7.8.6) es muy decepcionante. Intenté instalar IndentByFold en la versión 7.5.6, y rompió el maravilloso complemento AutoSave de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Lo siento: para mí, eso es un factor decisivo. (!) Probablemente no hay nada malo per se con IndentByFold por Frank Fesevur. Por el momento, culpo a la última versión de Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Lamentable.
Henke
En cuanto a mí funcionó. Estoy usando v7.8.4
Daniel Nyamasyo
Me arriesgo a perder el tema aquí, pero si alguien puede informar una versión de Notepad ++ posterior a la 7.5.6 que funciona con el complemento AutoSave 1.60 de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , yo estaría más que feliz de cambiar a esa versión. Si no, no hay forma de que actualice Notepad ++ 7.5.6 a una versión posterior. La versión 0.7 de IndentByFold también funciona para mí. Pero me opongo a poner espacios (finales) en filas vacías, lo que hace IndentByFold.
Henke
Mi versión de Notepad ++ es 7.5.6. Ahora he probado 1) Herramientas XML, 2) HTML Tidy, 3) Tidy2 Y 4) IndentByFold 0.7. El tipo de herramientas XML "funciona", pero crea un desorden deplorable de mi código HTML, https://i.imgur.com/oLOB30Z.png . Ni HTML Tidy ni Tidy2 funcionan en absoluto. IndentByFold 0.7 es la única solución que puedo poner a trabajar. No me gusta que ponga espacios (al final) en filas vacías, pero puedo vivir con eso. Todavía no apoyo esta respuesta (por Daniel Nyamasyo). La razón es que estoy totalmente en desacuerdo con los consejos para usar la última versión de Notepad ++.
Henke