InglésFrancésEspañol

Ad


icono de página de OnWorks

sangría: en línea en la nube

Ejecute sangría en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Esta es la sangría de comando que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


sangría: cambia la apariencia de un programa en C insertando o eliminando espacios en blanco.

SINOPSIS


sangrar [opciones] [archivos de entrada]

sangrar [opciones] [archivo-entrada-única] [-o archivo-salida]

sangrar --versión

DESCRIPCIÓN


Esta página de manual se genera a partir del archivo sangría.texinfo. Esta es la edición de "The sangrar
Manual ", para la versión de sangría, última actualización.

El sangrar El programa se puede utilizar para facilitar la lectura del código. También puede convertir de uno
estilo de escribir C a otro.

sangrar comprende una cantidad sustancial sobre la sintaxis de C, pero también intenta
hacer frente a una sintaxis incompleta y mal formada.

En la versión 1.2 y versiones más recientes, el estilo GNU de sangría es el predeterminado.

CAMPUS


-malo, --líneas-en-blanco-después-de-declaraciones
Forzar líneas en blanco después de las declaraciones.
See BLANCO LÍNEAS.

-panecillo en Escocia, - líneas en blanco después de los procedimientos
Forzar líneas en blanco después de los cuerpos de los procedimientos.
See BLANCO LÍNEAS.

-bbb, --líneas-en-blanco-antes-del-bloque-comentarios
Forzar líneas en blanco antes de bloquear comentarios.
See BLANCO LÍNEAS.

-bbo, --romper-antes-del-operador-booleano
Prefiere romper líneas largas antes que los operadores booleanos.
See ROMPIENDO LARGO LÍNEAS.

-antes de Cristo, --líneas-en-blanco-después-de-comas
Forzar nueva línea después de la coma en la declaración.
See Declaraciones.

-licenciado en Derecho, --llaves-después-si-línea
Ponga los aparatos ortopédicos en línea después if, etc.
See DECLARACIONES.

-blf, --llaves-después-de-func-def-line
Ponga llaves en la línea siguiente a la línea de definición de la función.
See Declaraciones.

-blin, --brace-sangrían
Tirantes de sangría n espacios
See DECLARACIONES.

-bls, --llaves-después-de-estructura-decl-línea
Pon frenos en la línea después struct líneas de declaración.
See Declaraciones.

-br, --llaves-en-si-linea
Ponga los aparatos ortopédicos en línea con if, etc.
See DECLARACIONES.

-brf, --llaves-en-func-def-line
Coloque llaves en la línea de definición de la función.
See Declaraciones.

-brs, --llaves-on-struct-decl-line
Poner frenillos struct línea de declaración.
See Declaraciones.

-bs, - Bill-Shannon, --en blanco antes del tamaño de
Pon un espacio entre tamaño de y su argumento.
See DECLARACIONES.

-cn, --comment-sangrían
Coloque comentarios a la derecha del código en la columna n.
See COMENTARIOS.

-cbin, - case-brace-sangrían
Sangría de llaves después de una etiqueta de caso N espacios.
See DECLARACIONES.

-discos compactosn, --declaración-comentario-columnan
Coloque los comentarios a la derecha de las declaraciones en la columna. n.
See COMENTARIOS.

-cdb, --comentario-delimitadores-en-líneas-en-blanco
Coloque delimitadores de comentarios en líneas en blanco.
See COMENTARIOS.

-cdw, - abrazar-hacer-mientras
Abrazar mientras de do {} mientras; y antes de '}'.
See COMENTARIOS.

-esta, --abrazo-otro
Acurrucarse más y antes de '}'.
See COMENTARIOS.

-estan, - sangría de continuaciónn
Sangría de continuación de n espacios
See DECLARACIONES.

-clin, - sangría de cason
Sangría de etiqueta de caso de n espacios
See DECLARACIONES.

-cpn, --else-endif-columnan
Coloque los comentarios a la derecha de #else y #terminara si declaraciones en columna n.
See COMENTARIOS.

-cs, --espacio después del lanzamiento
Ponga un espacio después de un operador de yeso.
See DECLARACIONES.

-dn, --line-comments-sangrían
Establezca la sangría de los comentarios no a la derecha del código para n espacios
See COMENTARIOS.

-bfda, --función-de-ruptura-decl-args
Romper la línea antes de todos los argumentos en una declaración.
See Declaraciones.

-bfde, --función-de-ruptura-decl-args-end
Romper la línea después del último argumento en una declaración.
See Declaraciones.

-DJ, --left-justify-declaraciones
Si se utiliza -cd 0, los comentarios después de las declaraciones se justifican detrás de la
declaración.
See Declaraciones.

-dun, --declaración-sangrían
Pon variables en columna n.
See Declaraciones.

-fc1, --formato-primera-columna-comentarios
Dar formato a los comentarios en la primera columna.
See COMENTARIOS.

-fca, --formato-todos-los-comentarios
No desactive todo el formato de los comentarios.
See COMENTARIOS.

-ñu, --estilo gnu
Utilice el estilo de codificación GNU. Este es el predeterminado.
See COMÚN ESTILOS.

-hnl, --honor-nuevas líneas
Prefiere romper líneas largas en la posición de nuevas líneas en la entrada.
See ROMPIENDO LARGO LÍNEAS.

-in, - nivel de sangrían
Establecer el nivel de sangría en n espacios
See SANGRÍA.

-Illinoisn, --etiqueta de sangrían
Establecer el desplazamiento de las etiquetas a la columna n.
See SANGRÍA.

-ipn, --parámetro-sangrían
Aplicar sangría a los tipos de parámetros en las definiciones de funciones antiguas por n espacios
See SANGRÍA.

-kr, - estilo k-and-r
Utilice el estilo de codificación Kernighan & Ritchie.
See COMÚN ESTILOS.

-ln, --Longitud de la línean
Establezca la longitud máxima de línea para las líneas sin comentarios en n.
See ROMPIENDO LARGO LÍNEAS.

-n, --longitud de la línea de comentarion
Establezca la longitud máxima de línea para el formato de comentarios en n.
See COMENTARIOS.

-linux, --estilo linux
Utilice el estilo de codificación de Linux.
See COMÚN ESTILOS.

-lp, --continuar entre paréntesis
Alinee las líneas continuas entre paréntesis.
See SANGRÍA.

-lps, --dejar-preprocesador-espacio
Deje un espacio entre '#' y la directiva del preprocesador.
See SANGRÍA.

-nbad, --sin-líneas-en-blanco-después-de-las-declaraciones
No fuerce las líneas en blanco después de las declaraciones.
See BLANCO LÍNEAS.

-nbap, - no hay líneas en blanco después de los procedimientos
No fuerce las líneas en blanco después de los cuerpos de los procedimientos.
See BLANCO LÍNEAS.

-nbbo, --break-after-booleano-operador
No prefiera romper líneas largas antes que los operadores booleanos.
See ROMPIENDO LARGO LÍNEAS.

-NBC, --no-líneas-en-blanco-después-de-comas
No fuerce nuevas líneas después de las comas en las declaraciones.
See Declaraciones.

-nbfda, --no-romper-función-declaración-argumentos
No coloque cada argumento en una declaración de función en una línea separada.
See Declaraciones.

-ncdb, --sin-comentarios-delimitadores-en-líneas-en-blanco
No coloque delimitadores de comentarios en líneas en blanco.
See COMENTARIOS.

-ncdw, --no-abrazar-hacer-mientras
No abrazar } y del mientras menos do {} mientras;.
See DECLARACIONES.

-nce, --no-abrazar-más
No abrazar } y más.
See DECLARACIONES.

-ncs, --no-espacio-después-de-casts
No ponga un espacio después de los operadores de reparto.
See DECLARACIONES.

-ndjn, --dont-left-justify-declaraciones
Los comentarios posteriores a las declaraciones se tratan de la misma manera que los comentarios posteriores a otras declaraciones.
See Declaraciones.

-nfc1, --no-formatear-comentarios-de-primera-columna
No formatee los comentarios en la primera columna de la forma habitual.
See COMENTARIOS.

-nfca, --no-formatear-comentarios
No formatee ningún comentario.
See COMENTARIOS.

-nhnl, --ignorar-nuevas líneas
No prefiera romper líneas largas en la posición de nuevas líneas en la entrada.
See ROMPIENDO LARGO LÍNEAS.

-cortar, --no-parámetro-sangría
Sangría de ancho cero para los parámetros.
See SANGRÍA.

-PNL, --dont-line-up-paréntesis
No alinee los paréntesis.
See DECLARACIONES.

-npc, --no-espacio-después-de-la-función-nombres-de-llamadas
No ponga espacio después de la función en las llamadas de función.
See DECLARACIONES.

-nprs, - sin espacio después de paréntesis
No ponga un espacio después de cada '(' y antes de cada ')'.
See DECLARACIONES.

-npsl, - tipo-procedimiento-no-romper
Coloque el tipo de procedimiento en la misma línea que su nombre.
See Declaraciones.

-nsaf, --no-espacio-después-para
No ponga un espacio después de cada para.
See DECLARACIONES.

-NSAI, --no-espacio-después-si
No ponga un espacio después de cada if.
See DECLARACIONES.

sierra, --no-espacio-después-mientras
No ponga un espacio después de cada mientras.
See DECLARACIONES.

-nsc, --no-estrella-comentarios
No coloque el carácter '*' a la izquierda de los comentarios.
See COMENTARIOS.

-nsob, --dejar-líneas-en-blanco-opcionales
No se trague las líneas en blanco opcionales.
See BLANCO LÍNEAS.

-nss, --dont-space-special-punto y coma
No fuerce un espacio antes del punto y coma después de ciertas declaraciones. Desactiva '-ss'.
See DECLARACIONES.

-nuez, --no-pestañas
Utilice espacios en lugar de tabulaciones.
See SANGRÍA.

-Nevada, --no verbosidad
Desactive el modo detallado.
See OTRO CAMPUS.

-origen, --original
Utilice el estilo de codificación original de Berkeley.
See COMÚN ESTILOS.

-npro, --ignorar-perfil
No lea archivos '.indent.pro'.
See INVOCAR SANGRAR.

-pzs, --espacio-después-de-llamadas-a-procedimiento
Inserte un espacio entre el nombre del procedimiento que se llama y el '('.
See DECLARACIONES.

-Pin, --paren-sangrían
Especifique la sangría adicional por paréntesis abiertos '(' cuando una declaración está rota.
DECLARACIONES.

-pmt, --preservar-mtime
Conserve los tiempos de acceso y modificación en los archivos de salida. OTRO CAMPUS.

-ppin, --preprocesador-sangrían
Especifique la sangría para las declaraciones condicionales del preprocesador. SANGRÍA.

-prs, --espacio-después-paréntesis
Ponga un espacio después de cada '(' y antes de cada ')'.
See DECLARACIONES.

-psl, --procnames-líneas de inicio
Ponga el tipo de procedimiento en la línea antes de su nombre.
See Declaraciones.

-seguro, --espacio-después-para
Pon un espacio después de cada para.
See DECLARACIONES.

-sai, --espacio-después-si
Pon un espacio después de cada if.
See DECLARACIONES.

-Sierra, --espacio-después-mientras
Pon un espacio después de cada mientras.
See DECLARACIONES.

-sbin, --struct-brace-indentaciónn
Sangría de llaves de una estructura, unión o enumeración N espacios.
See DECLARACIONES.

-Carolina del Sur, --start-lado-izquierdo-de-los-comentarios
Coloque el carácter '*' a la izquierda de los comentarios.
See COMENTARIOS.

-sollozo, --swallow-opcional-líneas en blanco
Trague las líneas en blanco opcionales.
See BLANCO LÍNEAS.

-ss, --espacio-especial-punto y coma
En una sola línea para y mientras declaraciones, fuerce un espacio en blanco antes del punto y coma.
See DECLARACIONES.

-S t, - salida estándar
Escribe en salida estándar.
See INVOCAR SANGRAR.

-T Decir sangrar el nombre de los tipos de letra.
See Declaraciones.

-tsn, --tamaño de pestañan
Establecer el tamaño de la pestaña en n espacios
See SANGRÍA.

-Utah, --usar-pestañas
Utilice pestañas. Este es el predeterminado.
See SANGRÍA.

-v, --verboso
Habilite el modo detallado.
See OTRO CAMPUS.

-versión
Genere el número de versión de sangrar.
See OTRO CAMPUS.

INVOCAR SANGRAR


A partir de la versión 1.3, el formato del sangrar comando es:

sangría [opciones] [archivos de entrada]

sangría [opciones] [archivo de entrada única] [-o archivo de salida]

Este formato es diferente de las versiones anteriores y otras versiones de sangrar.

En el primer formulario, se especifican uno o más archivos de entrada. sangrar hace una copia de seguridad de
cada archivo, y el archivo original se reemplaza con su versión con sangría. Ver BACKUP ARCHIVOS,
para obtener una explicación de cómo se realizan las copias de seguridad.

En el segundo formulario, solo se especifica un archivo de entrada. En este caso, o cuando el estándar
input, puede especificar un archivo de salida después de la opción '-o'.

Causar sangrar para escribir en la salida estándar, use la opción '-st'. Esto solo esta permitido
cuando solo hay un archivo de entrada, o cuando se usa la entrada estándar.

Si no se nombran archivos de entrada, la entrada estándar se lee para la entrada. Además, si un nombre de archivo
se especifica llamado '-', luego se lee la entrada estándar.

Como ejemplo, cada uno de los siguientes comandos ingresará el programa 'slithy_toves.c' y
escribe su texto sangrado en 'slithy_toves.out':

sangría slithy_toves.c -o slithy_toves.out

sangría -st slithy_toves.c> slithy_toves.out

cat slithy_toves.c | sangría -o slithy_toves.out

La mayoría de las otras opciones para sangrar controlar cómo se formatean los programas. A partir de la versión 1.2,
sangrar también reconoce un nombre largo para cada nombre de opción. Las opciones largas tienen el prefijo
ya sea '-' o '+'. ['+' está siendo reemplazado por '-' para mantener la coherencia con el
Estándar POSIX.]
En la mayor parte de este documento, los nombres cortos tradicionales se utilizan en aras de la brevedad.
See OPCIÓN RESUMEN, para obtener una lista de opciones, incluidos nombres largos y cortos.

Aquí hay otro ejemplo:

sangría -br prueba / metabolismo.c -l85

Esto sangrará el programa 'test / metabolism.c' usando las opciones '-br' y '-l85', escriba
la salida de nuevo a 'test / metabolism.c', y escriba el contenido original de
'test / metabolism.c' a un archivo de respaldo en el directorio 'test'.

Las invocaciones equivalentes que utilizan nombres de opciones largos para este ejemplo serían:

sangría --braces-on-if-line --line-length185 test / metabolism.c

sangría + tirantes-en-si-línea + longitud de línea185 test / metabolism.c

Si encuentra que usa a menudo sangrar con las mismas opciones, puede poner esas opciones
en un archivo llamado '.indent.pro'. sangrar buscará un archivo de perfil en tres lugares.
Primero verificará la variable de entorno INDENT_PROFILE. Si eso existe, su valor es
Se espera que nombre el archivo que se va a utilizar. Si la variable de entorno no existe,
sangría busca '.indent.pro' en el directorio actual
y utilícelo si lo encuentra. Finalmente sangrar buscará en su directorio personal '.indent.pro'
y use ese archivo si lo encuentra. Este comportamiento es diferente al de otras versiones.
of sangrar, que cargan ambos archivos si ambos existen.

El formato de '.indent.pro' es simplemente una lista de opciones, tal como aparecerían en la
línea de comando, separada por espacios en blanco (tabulaciones, espacios y nuevas líneas). Opciones en
'.indent.pro' puede estar rodeado de comentarios C o C ++, en cuyo caso se ignoran.

Se manejan los interruptores de la línea de comando después de procesando '.indent.pro'. Opciones especificadas más tarde
anular los argumentos especificados anteriormente, con una excepción: opciones especificadas explícitamente
anular siempre las opciones de fondo (ver COMÚN ESTILOS). Tu puedes prevenir sangrar en
leer un archivo '.indent.pro' especificando la opción '-npro'.

BACKUP ARCHIVOS


A partir de la versión 1.3, GNU sangrar crea archivos de respaldo al estilo GNU, de la misma manera que lo hace GNU Emacs.
Esto significa que o simples or numerado Se pueden hacer copias de seguridad de los nombres de los archivos.

Los nombres de archivos de respaldo simples se generan agregando un sufijo al nombre del archivo original.
El valor predeterminado para este sufijo es la cadena de un carácter '~' (tilde). Por lo tanto, la copia de seguridad
el archivo para 'python.c' sería 'python.c ~'.

En lugar del predeterminado, puede especificar cualquier cadena como sufijo configurando el entorno
variable SIMPLE_BACKUP_SUFIJO a su sufijo preferido.

Las versiones de copia de seguridad numeradas de un archivo 'momeraths.c' se parecen a 'momeraths.c. ~ 23 ~', donde 23 es
la versión de esta copia de seguridad en particular. Al hacer una copia de seguridad numerada del archivo
'src / momeraths.c', el archivo de respaldo se llamará 'src / momeraths.c. ~V~ ', donde V es uno
mayor que la versión más alta que existe actualmente en el directorio 'src'. los
Variable ambiental VERSION_ANCHO controla el número de dígitos, usando el relleno de cero a la izquierda
cuando sea necesario. Por ejemplo, establecer esta variable en "2" conducirá al archivo de respaldo
siendo nombrado 'momeraths.c. ~ 04 ~'.

El tipo de archivo de copia de seguridad realizado está controlado por el valor de la variable de entorno.
CONTROL DE VERSIONES. Si es la cadena 'simple', solo se realizarán copias de seguridad simples. Si
su valor es la cadena 'numerada', luego se realizarán copias de seguridad numeradas. Si su valor es
'numerado-existente', entonces se realizarán copias de seguridad numeradas si hay ya haya utilizado existe numerado
copias de seguridad del archivo que se está sangrando; de lo contrario, se realiza una copia de seguridad simple. Si
CONTROL DE VERSIONES no está configurado, entonces sangrar asume el comportamiento de 'existente numerado'.

Otras versiones de sangrar use el sufijo '.BAK' para nombrar los archivos de respaldo. Este comportamiento puede
ser emulado estableciendo SIMPLE_BACKUP_SUFIJO a '.BAK'.

Tenga en cuenta también que otras versiones de sangrar hacer copias de seguridad en el directorio actual, en lugar de
en el directorio del archivo fuente como GNU sangrar ahora lo hace.

COMÚN ESTILOS


Hay varios estilos comunes de código C, incluido el estilo GNU, Kernighan y
Estilo Ritchie y el estilo Berkeley original. Se puede seleccionar un estilo con un solo
fondo opción, que especifica un conjunto de valores para todas las demás opciones. Sin embargo,
Las opciones especificadas explícitamente siempre anulan las opciones implícitas en una opción en segundo plano.

A partir de la versión 1.2, el estilo predeterminado de GNU sangrar es el estilo GNU. Por lo tanto, no es
ya es necesario especificar la opción '-gnu' para obtener este formato, aunque al hacerlo
no provocará un error. Los ajustes de opciones que corresponden al estilo GNU son:

-nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
-ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -nprs -psl -saf -sai
-sierra -nsc -nsob

El estilo de codificación GNU es el preferido por el proyecto GNU. Es el estilo que GNU
El modo C de Emacs fomenta y se usa en las partes C de GNU Emacs. (Gente
interesado en escribir programas para el Proyecto GNU debe obtener una copia de "The GNU Coding
Estándares ", que también cubre cuestiones semánticas y de portabilidad, como el uso de memoria, la
tamaño de números enteros, etc.)

El estilo Kernighan & Ritchie se utiliza en su conocido libro "The C Programming
Idioma ". Está habilitado con la opción '-kr'. El estilo Kernighan & Ritchie
corresponde al siguiente conjunto de opciones:

-nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
-cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
-nprs -npsl -saf -sai -sierra -nsc -nsob -nss

El estilo Kernighan & Ritchie no coloca comentarios a la derecha del código en la misma columna en
todo el tiempo (ni usa solo un espacio a la derecha del código), por lo que para este estilo
sangrar ha elegido arbitrariamente la columna 33.

El estilo del Berkeley original sangrar puede obtenerse especificando '-orig' (o por
especificando '--original', usando el nombre largo de la opción). Este estilo es equivalente al
siguientes configuraciones:

-nbad -nbap -bbo -bc -br -brs -c33 -cd33 -cdb -ce -ci4 -cli0
-cp33 -di16 -fc1 -fca -hnl -i4 -ip4 -l75 -lp -npcs -nprs -psl
-saf -sai -sierra -sc -nsob -nss -ts8

El estilo Linux se utiliza en el código y los controladores del kernel de Linux. El código generalmente tiene que seguir
el estilo de codificación de Linux para ser aceptado. Este estilo es equivalente al siguiente
ajustes:

-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4
-cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai
-saf -sierra -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1

BLANCO LÍNEAS


Varios estilos de programación utilizan líneas en blanco en diferentes lugares. sangrar tiene un número de
opciones para insertar o eliminar líneas en blanco en lugares específicos.

La opción '-bad' provoca sangrar para forzar una línea en blanco después de cada bloque de declaraciones.
La opción '-nbad' provoca sangrar no forzar tales líneas en blanco.

La opción '-bap' fuerza una línea en blanco después de cada cuerpo de procedimiento. La opción '-nbap'
no fuerza tal línea en blanco.

La opción '-bbb' fuerza una línea en blanco antes de cada comentario encuadrado (Ver COMENTARIOS.) Los
La opción '-nbbb' no fuerza tales líneas en blanco.

La opción '-sob' provoca sangrar para tragar líneas en blanco opcionales (es decir, cualquier
las líneas en blanco presentes en la entrada se eliminarán de la salida). Si el '-nsob' es
especificado, cualquier línea en blanco presente en el archivo de entrada se copiará al archivo de salida.

--líneas-en-blanco-después-de-declaraciones


La opción '-bad' fuerza una línea en blanco después de cada bloque de declaraciones. El '-nbad'
La opción no agrega ninguna línea en blanco.

Por ejemplo, dada la entrada
char * foo;
char * bar;
/ * Esto separa bloques de declaraciones. * /
baz int;

sangrar -malo produce

char * foo;
char * bar;

/ * Esto separa bloques de declaraciones. * /
baz int;

y sangrar -nbad produce

char * foo;
char * bar;
/ * Esto separa bloques de declaraciones. * /
baz int;

- líneas en blanco después de los procedimientos


La opción '-bap' fuerza una línea en blanco después de cada cuerpo de procedimiento.

Por ejemplo, dada la entrada

int
Foo ()
{
pone ("Hola");
}
/ * La barra de procedimientos es aún menos interesante. * /
carácter *
bar ()
{
pone ("Hola");
}

sangrar -panecillo en Escocia produce

int
Foo ()
{
pone ("Hola");
}

/ * La barra de procedimientos es aún menos interesante. * /
carácter *
bar ()
{
pone ("Hola");
}

y sangrar -nbap produce

int
Foo ()
{
pone ("Hola");
}
/ * La barra de procedimientos es aún menos interesante. * /
carácter *
bar ()
{
pone ("Hola");
}

No se agregará ninguna línea en blanco después del procedimiento foo.

COMENTARIOS


sangrar da formato a los comentarios de C y C ++. Los comentarios de C comienzan con '/ *', terminan con
'* /' y puede contener caracteres de nueva línea. Los comentarios de C ++ comienzan con el delimitador '//' y
terminar en la nueva línea.

sangrar maneja los comentarios de manera diferente dependiendo de su contexto. sangrar intenta
distinguir entre comentarios que siguen a declaraciones, comentarios que siguen a declaraciones,
comentarios que siguen las directivas del preprocesador, y comentarios que no están precedidos por el código de
de cualquier tipo, es decir, comienzan el texto de la línea (aunque no necesariamente en la columna 1).

sangrar distingue aún más entre los comentarios que se encuentran fuera de los procedimientos y los agregados,
y los que se encuentran dentro de ellos. En particular, los comentarios que comienzan una línea que se encuentran dentro de un
El procedimiento se sangrará en la columna en la que el código está sangrado actualmente. los
la excepción a esto es un comentario que comienza en la columna más a la izquierda; se emite un comentario de este tipo
en esa columna.

sangrar intenta irse en caja comentarios sin modificar. La idea general de tal comentario es
que está encerrado en un rectángulo o "caja" de estrellas o guiones para diferenciarlo visualmente.
Más precisamente, los comentarios encuadrados se definen como aquellos en los que se sigue el '/ *' inicial
inmediatamente por el carácter '*', '=', '_' o '-', o aquellos en los que el principio
el delimitador de comentario ('/ *') está en una línea por sí mismo, y la siguiente línea comienza con un '*'
en la misma columna que la estrella del delimitador de apertura.

Ejemplos de comentarios en recuadros son:

/ **********************
* ¡Comenta en un recuadro! *
********************** /

/*
* Un tipo diferente de aroma,
* para un tipo de comentario diferente.
*/

sangrar intenta dejar comentarios en recuadros exactamente como se encuentran en el archivo de origen.
Por lo tanto, la sangría del comentario no se modifica y su longitud no se comprueba en ningún
camino. La única alteración realizada es que un carácter de tabulación incrustado se puede convertir en el
número apropiado de espacios.

Si se especifica la opción '-bbb', todos los comentarios encuadrados estarán precedidos por un espacio en blanco
línea, a menos que dicho comentario esté precedido por un código.

Los comentarios que no están encuadrados pueden formatearse, lo que significa que la línea es
roto para caber dentro de un margen derecho y relleno a la izquierda con espacios en blanco. Las nuevas líneas son
equivalente a un espacio, pero las líneas en blanco (dos o más líneas nuevas en una fila) se toman como un
salto de párrafo. Formateo de comentarios que comienzan después de que se habilita la primera columna
con la opción '-fca'. Para formatear los que comienzan en la columna uno, especifique '-fc1'. Tal
el formateo está deshabilitado de forma predeterminada.

El margen derecho para el formato predeterminado es 78, pero se puede cambiar con la opción '-lc'.
Si el margen especificado no permite que se imprima el comentario, el margen se
extendido automáticamente mientras dure ese comentario. El margen no se respeta si
el comentario no está formateado.

Si el comentario comienza una línea (es decir, no hay texto de programa a su izquierda), será
con sangría a la columna en la que se encontró a menos que el comentario esté dentro de un bloque de código. En
En ese caso, dicho comentario se alineará con el código sangrado de ese bloque (a menos que el
comentario comenzaba en la primera columna). Esta alineación puede verse afectada por la opción '-d',
que especifica una cantidad por la cual dichos comentarios se mueven a la izquierda, o sin sangría.
Por ejemplo, '-d2' coloca los comentarios dos espacios a la izquierda del código. Por defecto, comentarios
están alineados con el código, a menos que comiencen en la primera columna, en cuyo caso se dejan
allí por defecto --- para alinearlos con el código, especifique '-fc1'.

Los comentarios a la derecha del código aparecerán de forma predeterminada en la columna 33. Esto se puede cambiar
con una de las tres opciones. '-c' especificará la columna de comentarios después del código,
'-cd' especifica la columna para los comentarios que siguen a las declaraciones, y '-cp' especifica la
columna para comentarios siguiendo las directivas del preprocesador #else y #terminara si. '-dj' juntos
con '-cd0' se puede utilizar para suprimir la alineación de los comentarios a la derecha de las declaraciones,
haciendo que el comentario siga una pestaña desde el final de la declaración. Normalmente '-cd0'
hace que '-c' se vuelva eficaz.

Si el código a la izquierda del comentario excede la columna inicial, la columna de comentario
se extenderá a la siguiente columna de tabulación después del final del código, o en el caso de
directivas de preprocesador, a un espacio después del final de la directiva. Esta extensión dura
sólo para la salida de ese comentario en particular.

La opción '-cdb' coloca los delimitadores de comentarios en líneas en blanco. Por lo tanto, una sola línea
comentar como /* Amoroso abrazo */ se puede transformar en:

/*
Abrazo amoroso
*/

Las estrellas se pueden colocar al comienzo de los comentarios de varias líneas con la opción '-sc'. Por lo tanto,
el comentario de una sola línea anterior se puede transformar (con '-cdb -sc') en:

/*
* Abrazo cariñoso
*/

DECLARACIONES


La opción '-br' o '-bl' especifica cómo formatear las llaves.

La opción '-br' formatea llaves de declaración como esta:

si (x> 0) {
x--;
}

La opción '-bl' los formatea así:

si (x> 0)
{
x--;
}

Si usa la opción '-bl', es posible que también desee especificar la opción '-bli'. Esta opción
especifica el número de espacios por los que se sangran las llaves. '-bli2', el predeterminado, da
el resultado que se muestra arriba. '-bli0' da como resultado lo siguiente:

si (x> 0)
{
x--;
}

Si está usando la opción '-br', probablemente también quiera usar la opción '-ce'. Esta
causa el más en una construcción if-then-else para abrazar al inmediatamente anterior
'}'. Por ejemplo, con '-br -ce' obtienes lo siguiente:

si (x> 0) {
x--;
} Else {
fprintf (stderr, "... algo anda mal? \ n");
}

Con '-br -nce' ese código aparecería como

si (x> 0) {
x--;
}
else {
fprintf (stderr, "... algo anda mal? \ n");
}

Esto hace que mientras en un bucle do-while para acurrucarse hasta el '}' inmediatamente anterior.
Por ejemplo, con '-cdw' obtienes lo siguiente:

hacer {
x--;
} mientras (x);

Con '-ncdw' ese código aparecería como

hacer {
x--;
}
mientras (x);

La opción '-cli' especifica el número de espacios en los que se deben sangrar las etiquetas de caso
el derecho de la contención cambiar .

El valor predeterminado proporciona un código como:

interruptor (i)
{
caso 0:
break;
caso 1:
{
++ i;
}
por defecto:
break;
}

Usando el '-cli2' que se convertiría en:

interruptor (i)
{
caso 0:
break;
caso 1:
{
++ i;
}
por defecto:
break;
}

La sangría de las llaves debajo de una declaración de caso se puede controlar con la '-cbin'
opción. Por ejemplo, el uso de '-cli2 -cbi0' da como resultado:

interruptor (i)
{
caso 0:
break;
caso 1:
{
++ i;
}
por defecto:
break;
}

Si un punto y coma está en la misma línea que un para or mientras declaración, la opción '-ss'
hacer que se coloque un espacio antes del punto y coma. Esto enfatiza el punto y coma, haciéndolo
claro que el cuerpo del para or mientras declaración es una declaración vacía. '-nss' desactiva
Esta característica.

La opción '-pcs' hace que se coloque un espacio entre el nombre del procedimiento que se
llamado y el '(' (por ejemplo, pone ("Hola");. La opción '-npcs' daría
pone ("Hola");).

Si se especifica la opción '-cs', sangrar pone un espacio entre un operador de reparto y el
objeto para ser lanzado. El '-ncs' asegura que no haya espacio entre el operador de conversión y
el objeto. Recuérdalo sangrar solo conoce los tipos de datos C estándar y, por lo tanto, no puede
reconocer los tipos definidos por el usuario en los moldes. Por lo tanto (mi tipo) cosa no se trata como un yeso.

La opción '-bs' asegura que haya un espacio entre la palabra clave tamaño de y su
argumento. En algunas versiones, esto se conoce como la opción 'Bill_Shannon'.

La opción '-saf' fuerza un espacio entre un para y el siguiente paréntesis. Este es el
predeterminado.

La opción '-sai' fuerza un espacio entre un if y el siguiente paréntesis. Este es el
predeterminado.

La opción '-saw' fuerza un espacio entre un mientras y el siguiente paréntesis. Este es
el valor por defecto.

La opción '-prs' hace que todos los paréntesis se separen con un espacio de lo que sea
entre ellos. Por ejemplo, el uso de '-prs' da como resultado un código como:

while ((e_code - s_code) <(dec_ind - 1))
{
set_buf_break (bb_dec_ind);
* e_code ++ = '';
}

Declaraciones


Por defecto sangrar alineará los identificadores, en la columna especificada por la opción '-di'.
Por ejemplo, '-di16' hace que las cosas se vean así:

foo int;
char * bar;

El uso de un valor pequeño (como uno o dos) para la opción '-di' se puede usar para hacer que la
identificadores que se colocarán en la primera posición disponible; por ejemplo:

foo int;
char * bar;

El valor dado a la opción '-di' seguirá afectando a las variables que se colocan por separado
líneas de sus tipos, por ejemplo, '-di2' conducirá a:

int
foo;

Si se especifica la opción '-bc', se fuerza una nueva línea después de cada coma en una declaración.
Por ejemplo,

en un,
b,
c;

Con la opción '-nbc' esto se vería así

ent a, b, c;

La opción '-bfda' hace que se fuerce una nueva línea después de la coma que separa los argumentos
de una declaración de función. Los argumentos aparecerán en un nivel de sangría más profundo que
la declaración de función. Esto es particularmente útil para funciones con argumentos largos.
liza. La opción '-bfde' hace que se fuerce una nueva línea antes del corchete de cierre del
declaración de función. Para ambas opciones, la configuración 'n' es la predeterminada: -nbdfa y -nbdfe.

Por ejemplo,

void foo (int arg1, char arg2, int * arg3, long arg4, char arg5);
Con la opción '-bfda' esto se vería así

void foo
intarg1,
carbón arg2,
int * arg3,
arg4 largo,
carbón arg5);

Además, con la opción '-bfde', esto se vería así

void foo
intarg1,
carbón arg2,
int * arg3,
arg4 largo,
carbón arg5
);

La opción '-psl' hace que el tipo de procedimiento que se está definiendo se coloque en la línea
antes del nombre del procedimiento. Este estilo es necesario para etiquetas programa para trabajar
correctamente, así como algunas de las modo c funciones de Emacs.

Debes usar la opción '-T' para decir sangrar el nombre de todos los nombres de tipo en su programa
que están definidos por typedef. '-T' se puede especificar más de una vez, y todos los nombres
se utilizan especificados. Por ejemplo, si su programa contiene

typedef CODE_ADDR largo sin firmar;
typedef enum {rojo, azul, verde} COLOR;

usaría las opciones '-T CODE_ADDR -T COLOR'.

La opción '-brs' o '-bls' especifica cómo formatear las llaves en las declaraciones de estructura. los
La opción '-brs' formatea llaves como esta:

estructura foo {
int x;
};

La opción '-bls' los formatea así:

estructura foo
{
int x;
};

De manera similar a las opciones de la llave de estructura '-brs' y '-bls',
las opciones de llaves de función '-brf' o '-blf' especifican cómo formatear las llaves en función
definiciones. La opción '-brf' formatea llaves de esta manera:

int one (void) {
1 regresar;
};

La opción '-blf' los formatea así:

int one (vacío)
{
1 regresar;
};

SANGRÍA


Un problema en el formato del código es qué tan lejos se debe sangrar cada línea desde la izquierda
margen. Cuando el comienzo de una declaración como if or para se encuentra, el
El nivel de sangría aumenta con el valor especificado por la opción '-i'. Por ejemplo,
utilice '-i8' para especificar una sangría de ocho caracteres para cada nivel. Cuando una declaración es
dividida en dos líneas, la segunda línea tiene una sangría de varios espacios adicionales
especificado por la opción '-ci'. '-ci' por defecto es 0. Sin embargo, si la opción '-lp' es
especificado, y una línea tiene un paréntesis izquierdo que no está cerrado en esa línea, entonces
Las líneas de continuación se alinearán para comenzar en la posición del personaje justo después de la izquierda.
paréntesis. Este procesamiento también se aplica a '[' y se aplica a '{' cuando ocurre en
listas de inicialización. Por ejemplo, un fragmento de código continuo podría verse así con
'-nlp -ci3' en efecto:

p1 = primer_procedimiento (segundo_procedimiento (p2, p3),
tercer_procedimiento (p4, p5));

Con '-lp' en efecto, el código parece algo más claro:

p1 = primer_procedimiento (segundo_procedimiento (p2, p3),
tercer_procedimiento (p4, p5));

Cuando una declaración se divide entre dos o más pares de pares (...), cada par adicional
hace que el nivel de sangría sea una sangría adicional:

si ((((i <2 &&
k> 0) || p == 0) &&
q == 1) ||
norte = 0)

La opción '-ipN'se puede utilizar para establecer el desplazamiento adicional por par. Por ejemplo, '-ip0'
formatearía lo anterior como:

si ((((i <2 &&
k> 0) || p == 0) &&
q == 1) ||
norte = 0)

sangrar asume que las pestañas se colocan a intervalos regulares tanto de entrada como de salida
corrientes de caracteres. Estos intervalos tienen por defecto 8 columnas de ancho, pero (a partir de la versión 1.2)
se puede cambiar con la opción '-ts'. Las pestañas se tratan como el número equivalente de espacios.

La sangría de las declaraciones de tipo en las definiciones de funciones de estilo antiguo está controlada por
el parámetro '-ip'. Este es un parámetro numérico que especifica cuántos espacios sangrar
declaraciones de tipo. Por ejemplo, el '-ip5' predeterminado hace que las definiciones se vean así:

carácter *
create_world (x, y, escala)
int x;
int y;
escala de flotación;
{
. . .
}

Para compatibilidad con otras versiones de sangría, se proporciona la opción '-nip', que es
equivalente a '-ip0'.

ANSI C permite colocar espacios en blanco en las líneas de comando del preprocesador entre el carácter
'#' y el nombre del comando. Por defecto, sangrar elimina este espacio, pero especificando el
La opción '-lps' dirige sangrar dejar este espacio sin modificar. La opción '-ppi' anula
'-nlps' y '-lps'.

Esta opción se puede utilizar para solicitar que las sentencias condicionales del preprocesador
sangrado por un número dado de espacios, por ejemplo con la opción '-ppi 3'

#si X
#Si y
#definir Z 1
#else
#definir Z 0
#terminara si
#terminara si
se convierte en
#si X
# Si y
# definir Z 1
# demás
# definir Z 0
# terminara si
#terminara si

Esta opción establece el desplazamiento en el que se colocará una etiqueta (excepto las etiquetas de caso). Si
se establece en cero o un número positivo, esto indica qué tan lejos del margen izquierdo para
sangrar una etiqueta. Si se establece en un número negativo, esto indica qué tan lejos del
nivel de sangría actual para colocar la etiqueta. El ajuste predeterminado es -2, que coincide con el
comportamiento de versiones anteriores de sangría. Tenga en cuenta que este parámetro no afecta al
colocación de etiquetas de cajas; vea el parámetro '-cli' para eso. Por ejemplo con la opción
'-il 1'

grupo de XNUMX
función()
{
si (do_stuff1 () == ERROR)
ir a limpieza1;

si (do_stuff2 () == ERROR)
ir a limpieza2;

volver ÉXITO;

limpieza2:
do_cleanup2 ();

limpieza1:
do_cleanup1 ();

devolver ERROR;
}
se convierte en
grupo de XNUMX
función()
{
si (do_stuff1 () == ERROR)
ir a limpieza1;

si (do_stuff2 () == ERROR)
ir a limpieza2;

volver ÉXITO;

limpieza2:
do_cleanup2 ();

limpieza1:
do_cleanup1 ();

devolver ERROR;
}

ROMPIENDO LARGO LÍNEAS


Con la opción '-ln', o' --line-lengthn', es posible especificar la longitud máxima
de una línea de código C, sin incluir los posibles comentarios que le siguen.

Cuando las líneas se vuelven más largas que la longitud de línea especificada, GNU sangrar intenta romper el
línea en un lugar lógico. Sin embargo, esto es nuevo a partir de la versión 2.1 y no es muy inteligente.
o flexible todavía.

Actualmente existen dos opciones que permiten interferir con el algoritmo que
determina dónde romper una línea.

La opción '-bbo' hace que GNU sangrar preferir romper líneas largas antes que el booleano
operadores && y ||. La opción '-nbbo' hace que GNU sangrar no tengo esa preferencia. Para
ejemplo, la opción predeterminada '-bbo' (junto con '--line-length60' y '--ignore-
newlines ') hace que el código se vea así:

si (mascarilla
&& ((máscara [0] == '\ 0')
|| (máscara [1] == '\ 0'
&& ((máscara [0] == '0') || (máscara [0] == '*')))))

El uso de la opción '-nbbo' hará que se vea así:

si (máscara &&
((máscara [0] == '\ 0') ||
(máscara [1] == '\ 0' &&
((máscara [0] == '0') || (máscara [0] == '*')))))

El '-hnl' predeterminado, sin embargo, respeta las líneas nuevas en el archivo de entrada dándoles el valor más alto
posible prioridad para romper líneas en. Por ejemplo, cuando el archivo de entrada se ve así:

si (mascarilla
&& ((máscara [0] == '\ 0')
|| (máscara [1] == '\ 0' && ((máscara [0] == '0') || (máscara [0] == '*')))))

luego usando la opción '-hnl', o '--honour-newlines', junto con la opción anterior
mencionado '-nbbo' y '--line-length60', hará que la salida no sea la que se da en
el último ejemplo, pero en su lugar preferirá romper en las posiciones donde el código fue
roto en el archivo de entrada:

si (mascarilla
&& ((máscara [0] == '\ 0')
|| (máscara [1] == '\ 0' &&
((máscara [0] == '0') || (máscara [0] == '*')))))

La idea detrás de esta opción es que las líneas que son demasiado largas, pero que ya están divididas,
no será tocado por GNU sangrar. Se debe ejecutar un código realmente desordenado sangrar at
aunque al menos una vez usando la opción '--ignore-newlines'.

INHABILITAR FORMATEAR


El formateo de código C puede deshabilitarse para partes de un programa incorporando especial
control comentarios en el programa. Para desactivar el formateo de una sección de un programa, coloque
el comentario de control de desactivación /* * INDENT-OFF * */ en una línea por sí misma justo antes de eso
sección. El texto del programa escaneado después de este comentario de control se emite exactamente como entrada
sin modificaciones hasta que el comentario habilitante correspondiente sea escaneado en una línea por
sí mismo. El comentario de control de desactivación es /* * INDENT-ON * */, y cualquier texto que siga a
El comentario en la línea también se envía sin formato. El formateo comienza de nuevo con la entrada
línea que sigue al comentario de control de habilitación.

Más precisamente, sangrar no intenta verificar el delimitador de cierre (*/) para estos C
comentarios, y cualquier espacio en blanco en la línea es totalmente transparente.

Estos comentarios de control también funcionan en sus formatos C ++, a saber // * INDENT-OFF * y //
* INDENT-ON *.

Cabe señalar que el estado interno de sangrar permanece sin cambios en el transcurso de
la sección sin formato. Así, por ejemplo, desactivar el formateo en medio de una
función y continuarla después del final de la función puede conducir a resultados extraños. Eso
Por lo tanto, es aconsejable ser algo modular al seleccionar el código que se dejará sin formatear.

Como nota histórica, algunas versiones anteriores de sangrar produjo mensajes de error comenzando
*SANGRAR**. Estas versiones de sangrar se escribieron para ignorar cualquier línea de texto de entrada
que comenzó con tales mensajes de error. He eliminado esta característica incestuosa de GNU
sangrar.

OTRO CAMPUS


Para averiguar qué versión de sangrar tienes, usa el comando sangrar -versión. Esta voluntad
informar el número de versión de sangrar, sin realizar ninguno de los procesos normales.

La opción '-v' se puede utilizar para activar el modo detallado. Cuando está en modo detallado, sangrar informes
cuando divide una línea de entrada en dos líneas más de salida, y da algo de tamaño
estadísticas al finalizar.

La opción '-pmt' provoca sangrar preservar los tiempos de acceso y modificación en el
archivos de salida. El uso de esta opción tiene la ventaja de que ejecutar sangría en todas las fuentes y
los archivos de encabezado en un proyecto no causarán para lograr para reconstruir todos los objetivos. Esta opción es solo
disponible en los sistemas operativos que tienen POSIX tiempo útil(2) función.

Use sangría en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad