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.

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.


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"


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.


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 ++.


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
  }
}

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í.


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.


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.


¿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í



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


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í


1

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


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.


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í


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.