Sangría automática en el Bloc de notas ++

187

Siempre escribimos código como este formal:

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

texto alternativo

Pero cuando uso Notepad ++ , la pantalla es:

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

texto alternativo

¿Cómo uso Notepad ++ para sangrar automáticamente?

Gracias a Jonathan , lo configuré, pero no tiene ningún efecto. La instantánea está abajo:

texto alternativo

Estoy usando Notepad ++ versión 5.1.3.

Turion
fuente

Respuestas:

135

Notepad ++ solo insertará automáticamente sangrías posteriores si sangra manualmente la primera línea de un bloque; de lo contrario, puede volver a sangrar su código después de usarlo TextFX > TextFX Edit > Reindent C++ code.

scronide
fuente
1
Si a su versión le falta la DLL, puede obtenerla de la versión ZIP 5.9.0. Algunas de las versiones posteriores no incluían esta DLL. notepad-plus-plus.org/download/v5.9.0.html
Fostah
2
De hecho, encontré esto mientras buscaba una forma de formatear el código de JavaScript. Resulta que esto también funciona para archivos .js.
sacredfaith
77
@Fostah: también puede instalar el "Carácter de texto FX" a través de> Complementos> Administrador de complementos> Mostrar administrador de complementos
Adrien Be
@scronide, ¿hay una tecla de acceso directo para esto?
Pacerier
Tenga en cuenta que, a pesar del nombre, también volvió a sangrar correctamente el código de JavaScript que estaba tratando de arreglar. No hay razón por la que esperaría que no lo hiciera, solo mencionando, ya que el nombre es bastante específico. No sé por qué el autor de esa biblioteca sintió que tenía que dar preferencia especial a C ++ ...: D
neminem
99

Si el menú TextFX no existe, debe descargar e instalar el complemento. Complementos-> Administrador de complementos-> Mostrar Administrador de complementos y luego verifique los caracteres TextFX del complemento . Haga clic en 'instalar', reinicie Notepad ++.

En la versión Notepad ++ v6.1.3, resuelvo con: Administrador de complementos-> Mostrar administrador de complementos ** y luego verifico el complemento "Sangría por pliegue"

desconocidos
fuente
2
Sangría por pliegue es impresionante. El hecho de que funcione en formato arbitrario ( XML, C / ++ / #, etc. ) es genial. El único problema con esto es la pila "deshacer". Cuando se usa, si desea deshacer hasta un punto anterior al sangrado, debe deshacer cada nueva sangría de línea, ya que no se agrega a la pila como un solo comando. Básicamente, tenga cuidado al trabajar con archivos largos .
Dan Lugg el
Hola @Dan, el problema de deshacer parece haberse solucionado en la versión más nueva de sangría por pliegue ...
538ROMEO
1
Sí, no existe y no hay Administrador de complementos.
Beyondo
31

Parece que hay una opción para el formato automático de XML al menos. Se puede encontrar en TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.

Abhishek
fuente
2
necesita el complemento TextFx para esto
arviman
29

La mayoría de los desarrolladores de programas de edición de texto hacen mal uso de este nombre (sangría automática). El nombre correcto es "mantener sangría". La sangría automática es lo que realmente desea, pero no está implementado.

También me gustaría ver esta característica en Notepad ++.

Peter Mortensen
fuente
22

En la última versión (al menos), puede encontrarla a través de:

  • Configuraciones (menú)
  • Preferencias ...
  • MISC (pestaña)
  • lista de casillas de verificación inferior izquierda
  • " Auto-sangrado " es la segunda opción en este grupo

[ EDITAR ] Sin embargo, no creo que haya tenido la mejor implementación de sangría automática. Por lo tanto, verifique que tenga la versión 5.1: la sangría automática se revisó recientemente, por lo que corrige automáticamente su sangría.


También tenga en cuenta que le falta el bloque para el 2do if:

void main(){
  if(){
    if() { }  # here
  }
}
Jonathan Lonowski
fuente
8
Tenga en cuenta que esta configuración de sangría automática en Notepad ++ supone que realiza la primera sangría en un bloque manualmente; no formatea automáticamente el código por usted.
scronide el
Tengo significado en este momento, por favor, perdona mi pobre Eng ... Mi lengua materna es el chino ...
Turion
14

Puede usar el complemento 'Sangría por pliegue'. Instálalo desde el administrador de complementos. Funciona bien para mí.

Aki143S
fuente
2
La sangría por pliegue es excelente, excepto que solo sangra por pliegue;) En situaciones en las que ha sangrado una inicialización de lista, a menos que el lenguaje use un carácter de plegado para delimitar el inicializador, terminará sin sangría. Un ejemplo es una inicialización de matriz multilínea en PHP usando array( ... ), donde ()no son plegables.
Dan Lugg
5

En la versión 6.6.8 instalé el complemento NppAutoIndent desde Complementos> Administrador de complementos> Mostrar administrador de complementos. Luego seleccioné la opción Smart Indent en Plugin> NppAutoIndent. Espero que esto ayude.

TheRS
fuente
4

Una pequeña actualización: puede omitir el complemento TextFX y simplemente usar Tidy2 . Aquí puede configurar sus propias reglas de formateo para diferentes tipos de códigos. Fácil de instalar y quitar dentro

Notepad ++> Complementos> Administrador de complementos> Mostrar administrador de complementos

y solo busca Tidy2 e instálalo. Hecho.

Sven Ya
fuente
¿Puedes explicar un poco más?
Dieter Meemken
Puede encontrar más información sobre la configuración aquí: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya
es bastante difícil usar esto en comparación con otros complementos
Gaurav khurana
4

Para aquellos que usan Notepad ++ v6.8.1 y posterior, la configuración de sangría automática ahora se encuentra en el menú ConfiguraciónPreferenciasMISC. Sangría automática .

Ingrese la descripción de la imagen aquí

Luke
fuente
3

Pruebe el complemento UniversalIndentGUI para Notepad ++. Vuelve a sangrar el código en función de algunos parámetros. Funciono bien para mi.

imriss
fuente
3
Tenga en cuenta que el enlace es directo a la descarga. El sitio web es: universalindent.sourceforge.net . Además, esto parece ser una GUI para configurar una herramienta de reformateo, en lugar de formatear automáticamente el texto correctamente para empezar.
Martin Bonner apoya a Monica el
2

Esto puede parecer tonto, pero en la pregunta original, Turion estaba editando un archivo de texto sin formato. Asegúrese de elegir el idioma correcto en el menú Idioma

kurdtpage
fuente
2
Menu TextFX → TextFX Edit → Reindent C++ code

ingrese la descripción de la imagen aquí

Pero , Notepad ++ no viene con este complemento "Texto de caracteres FX". Deberá instalarlo a través de

Plugins → Plugin Manager → Show Plugin Manager.

Para agregar acceso directo para la sangría .

Haga clic en ConfiguraciónMapeador de accesos directos ... configure la tecla de acceso directo que prefiera. Prefiero Ctrl+ =.

Ingrese la descripción de la imagen aquí

Saurav Sahu
fuente
1

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

usuario9717890
fuente
1

Primero descargue el administrador de complementos de este enlace, luego descomprima la carpeta zip y cópielo dentro de la carpeta de su programa / bloc de notas ++. luego reinicie su bloc de notas ++. entonces verá el administrador de complementos dentro del menú de complementos. luego haga clic en administrador de complementos y luego haga clic en mostrar administrador de complementos. Muestra toda tu lista de complementos. de la lista en la parte inferior encuentre herramientas XML, verifíquelo e instálelo. luego reinicie su bloc de notas ++. Después de abrir un documento, complementos / herramientas xml / bastante simple (sangría de texto) y luego disfrutar.

tapos ghosh
fuente
0

Para aquellos que usan la versión 7.8.5, la configuración de sangría automática ahora se encuentra en "Configuración" -> "Preferencias ..." -> "Finalización automática".

ingrese la descripción de la imagen aquí

ooi18
fuente
0

Intente guardar el archivo antes, luego sangrará.

Sh13
fuente
¡Podría ser un comentario!
Farbod Ahmadian
¿Puedes explicar esto un poco más?
Toto