Formateador / penetrador de código fuente

17

Estoy usando Ubuntu 12.04. No tengo privilegios de root o sudo ya que esta es una máquina de la compañía.

¿Existe, en una instalación normal de Ubuntu 12.04, algún programa de terminal que pueda usar para convertir el código fuente feo malformado que carece de sangría en un código de aspecto agradable?

Nuevamente, no puedo instalar ningún paquete, así que necesito uno que ya viene con Ubuntu, si es que existe.

Por ejemplo:

    int main()
    {
test(1);
another_function(1);
}

Y luego convertirlo a:

int main()
{
    test(1);
    another_function(1);
}
usuario9993
fuente
¿Qué utilizas para ver o editar el código? Presumiblemente, quieres que esté sangrado en tu editor, ¿verdad? ¿O quieres hacer esto desde la línea de comandos para múltiples archivos?
terdon
¿Te refieres a una herramienta en línea?
Braiam
1
Gedit sangrará IIRC, y Kate resaltará y sangrará según el tipo de archivo si tiene la capacidad de cambiar a KDE
eyoung100

Respuestas:

12

Si tiene instalado el editor vim, abra el archivo con vim file.cy escriba =Gpara sangrar el archivo de principio a fin. Luego guárdelo con :wq.

En las instalaciones predeterminadas, vi(no vim) está instalado, por lo que no tendrá el identpaquete requerido (como lo menciona karel).

Lekensteyn
fuente
9

¡clang-format es tu amigo! Es fácil de usar y útil.
Aquí hay alguna información al respecto.

Uso

$ clang-format file > formattedfile

O:

$ clang-format -i file


Guía paso a paso

1. Código con formato horrible

#include <iostream>
  using namespace std;
    int main() {
         cout << "Oh";
      cout << "clang format rulez!";       
             }

main.cc

2. Comando mágico

$ clang-format -i main.cc


3. Código bien formateado

#include <iostream>
using namespace std;
int main() {
  cout << "Oh";
  cout << "clang format rulez!";
}

main.cc

4.

Instalación de felicidad

Si te gusta, puedes instalarlo con,

$ sudo apt-get install clang-format

mando.

mraron
fuente
3

Abra la terminal y ejecute:

sudo apt-get install indent
indent -linux -l120 -i4 -nut unformatted-source-code.cpp

... donde unformatted-source-code.cpp es el archivo que tiene el código fuente de C ++ sin formato, como el código de su ejemplo.

O si no puede instalarlo, puede descargar el paquete apt-get download indenty extraerlo: dpkg-deb -x indent*.deb fs/el binario de sangría se encuentra en fs/usr/bin/donde fs es cualquier directorio en su directorio de inicio. Si copia el archivo unformatted-source-code.cpp en el mismo lugar, fs/usr/bin/los comandos para sangrar el código desde el terminal son:

cd path/to/fs/usr/bin/  # change directories to the location of "indent" executable
./indent -linux -l120 -i4 -nut unformatted-source-code.cpp

Estos comandos se pueden ejecutar como usuario normal. No es necesario ser root.

karel
fuente
2
No tengo privilegios de root o sudo ya que esta es una máquina de la compañía.
user9993
55
@ user9993 Puede descargar el paquete apt-get download indenty extraerlo: dpkg-deb -x indent*.deb fs/el binario de sangría se encuentra en fs/usr/bin/.
Lekensteyn
2

Por defecto, nano debe instalarse en ubuntu.

Puede usar nano -i filepara editar con la sangría automática habilitada.

Es posible que esto no cambie las líneas existentes, ya que es posible que deba sangrarlo manualmente.

Ver: http://www.nano-editor.org/dist/v2.0/nano.html

Avinash R
fuente
1

astyle y sangrado vienen a la mente, pero una instalación predeterminada de Ubuntu tampoco incluye. Por supuesto, si tiene un compilador de C, puede compilarlos e instalarlos en su propia RUTA en alguna parte.

# Something like -
./configure --prefix=$HOME/tools
make
make install
PATH=$PATH:$HOME/tools/bin
Elliott Frisch
fuente
1

emacs:

  • abrir archivo c

  • seleccionar todo

  • sangría (tecla tab)

  • guardar el archivo

HTH

Adán
fuente