2009-01-05 30 views
169

Siempre escribir código como este formales:Auto-guión en Notepad ++

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

Alt text

Pero cuando se utiliza Notepad++, la pantalla es:

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

Alt text

¿Cómo uso Notepad ++ para la sangría automática?

Gracias a Jonathan, lo he configurado, pero no tiene ningún efecto. La instantánea está por debajo de:

Alt text

estoy usando Notepad ++ versión 5.1.3.

+51

Hola Turion, bienvenido a desbordamiento de pila!He vuelto a guardar para que tus imágenes funcionen; los usuarios con <15 rep no pueden publicar imágenes porque tuvimos algunos ... er ... problemas ... con eso. –

Respuesta

20

En la versión más reciente (por lo menos), se puede encontrar a través de:

  • Ajustes (menú)
  • Preferencias ...
  • MISC (pestaña)
  • lista de casilla inferior izquierda
  • "Auto-indent "es la segunda opción en este grupo

[EDITAR] Sin embargo, no creo que ha tenido la mejor aplicación de auto-guión. Por lo tanto, asegúrese de tener la versión 5.1: el auto-sangrado ha sido revisado recientemente, por lo que corrige automáticamente su sangrado.


hará también en cuenta que se está perdiendo el bloque para el segundo if:

void main(){ 
    if(){ 
    if() { } # here 
    } 
} 
+7

Tenga en cuenta que esta configuración de sangría automática en Notepad ++ asume que usted hace la primera sangría en un bloque manualmente; no formatea automáticamente el código por usted. – scronide

+0

Obtuve su significado en este momento, perdone a mi pobre ingeniero ... Mi lengua materna es el chino ... – Turion

131

Notepad ++ sólo se auto-insertar guiones posteriores si sangría a la primera línea manualmente en un bloque; de lo contrario, puede volver a sangrar su código después del hecho usando 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 incluyeron esta DLL. http://notepad-plus-plus.org/download/v5.9.0.html – Fostah

+2

De hecho, encontré esto mientras buscaba una manera de formatear el código JavaScript. ¡Resulta que esto también funciona para los archivos .js! – sacredfaith

+7

@Fostah: también puede instalar el "carácter de texto FX" a través de> Complementos> Administrador de complementos> Mostrar administrador de complementos –

26

La mayoría de los desarrolladores de programas de edición de texto utilizan incorrectamente este nombre (sangría automática). El nombre correcto es "mantener indentación". Auto-sangrado es lo que realmente quiere, pero no está implementado.

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

31

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

+1

necesita el complemento TextFx para este – arviman

10

Para sangrar un archivo XML en Notepad ++: TextFX -> TextFX HTML Tidy -> Tidy resangrar XML (última opción en la barra de menú)

+5

de hecho, encontré esta opción 'Tidy (HTMLTIDY.CFG)' más reciente, pero aparece como gris y no puedo hacer clic en él .. – elady

+0

necesita el complemento TextFx para este – arviman

87

Si no existe el menú TextFX, es necesario descarga & instala el complemento. Complementos-> Administrador de complementos-> Mostrar el Administrador de complementos y luego marcar el complemento Caracteres de textoFX. Haga clic en 'instalar', reinicie Notepad ++.

En la versión v6.1.3 Bloc de notas ++, resuelvo con: administrador de complementos Manager-> Mostrar Plugin ** y luego comprobar la "sangría Por Fold" plug-in

+2

Sangría por pliegue es increíble. El hecho de que funcione en formato arbitrario (* XML, C/++/#, etc. *) es genial. El único problema es la pila "deshacer". Cuando se usa, si desea deshacer un punto anterior cuando se sangra, debe deshacer ** cada ** redención de línea, ya que no se agrega a la pila como un solo comando. Básicamente, tenga cuidado cuando trabaje con archivos * long *. – Dan

+0

Hola @Dan, parece que el problema de deshacer se ha corregido en la versión más reciente de sangrado por fold ... –

13

Puede utilizar 'sangría por pliegue' plugin. Instálalo desde el administrador de complementos. Funciona bien para mí.

+1

Este es el mejor. – Animesh

+0

no desentiende la llave de cierre – cikatomo

+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 utilice un carácter plegable para delimitar el inicializador, terminar sin sangriento Un ejemplo es una inicialización de matriz multilínea en PHP usando 'array (...)', donde '()' no son plegables. – Dan

3

Pruebe el complemento UniversalIndentGUI para Notepad ++. Refunde el código basado en algunos parámetros. Funciono bien para mi.

+2

Tenga en cuenta que el enlace es directo a la descarga. El sitio web es: http://universalindent.sourceforge.net/. Además, esto parece ser una GUI para configurar una herramienta de reforma, en lugar de formatear automáticamente el texto correctamente para comenzar. –

4

En la versión 6.6.8 instalé el complemento NppAutoIndent desde Plugins> Plugin Manager> Show Plugin Manager. Luego, seleccioné la opción Sangría inteligente en Complemento> NppAutoIndent. Espero que esto ayude.

+0

Este plugin funciona perfecto, no hay más tabulaciones – JohnA10

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 ++> Plugins> administrador de complementos> Mostrar Administrador de complementos

y sólo la búsqueda de Tidy2 e instalarlo. Hecho.

+0

¿Puedes explicar un poco más? –

+0

Más información sobre la configuración se puede encontrar aquí: http://stackoverflow.com/questions/14865770/using-tydy2-for-notepad –

+0

es bastante difícil de usar esto en comparación con otros complementos –

2

para aquellos que usan N v6.8.1 ++ y superior, el ajuste automático guión se coloca ahora en el menú/Configuración/MISC./Sangría automática

enter image description here

2

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

0

TextFX > TextFX Edit > Reindent C++ code es lo que necesita hacer, pero muchas personas prefieren algunos atajo de teclado. Si usted es uno de ellos lea a continuación:

Notepad ++ no viene con este complemento "Text FX Character". Tienes que instalarlo a través del Plugins > Plugin Manager > Show Plugin Manager.

Como se indica en el above answer that there is no auto-indentation support, es muy útil tener un atajo sencillo para sangría.

Para configurar el acceso directo, haga clic en Settings > Shortcut Mapper... para encontrar esta ventana emergente a continuación. Debajo de la pestaña Plugin Commands, busque la fila Reindent C++ Code y configure la tecla de método abreviado que prefiera. Prefiero Ctrl + =.

enter image description here