Formattatore / rientro del codice sorgente


17

Sto usando Ubuntu 12.04. Non ho alcun privilegio di root o sudo in quanto si tratta di una macchina aziendale.

C'è, in una normale installazione di Ubuntu 12.04, qualche programma terminale che posso usare per trasformare un brutto codice sorgente malformato che manca di qualsiasi rientro in un codice dall'aspetto gradevole?

Ancora una volta, non riesco a installare alcun pacchetto, quindi ne ho bisogno di uno già fornito con Ubuntu, se esiste una cosa del genere.

Per esempio:

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

E poi convertilo in:

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

Cosa usi per vedere o modificare il codice? Presumibilmente vuoi che sia rientrato nel tuo editor, giusto? O vuoi farlo dalla riga di comando per più file?
terdon,

Intendi come uno strumento online?
Braiam,

1
Gedit indenterà IIRC e Kate evidenzierà e indenterà in base al tipo di file se hai la possibilità di passare a KDE
eyoung100

Risposte:


12

Se hai installato l'editor vim, apri il file con vim file.ce digita =Gper indentare il file dall'inizio alla fine. Quindi salvalo con :wq.

Nelle installazioni predefinite, vi(not vim) è installato, quindi non avrà il identpacchetto richiesto (come menzionato da karel).


9

clang-format è tuo amico! È facile da usare e utile.
Ecco alcune informazioni al riguardo.

uso

$ clang-format file > formattedfile

O:

$ clang-format -i file


Guida dettagliata

1. Codice formattato in modo orribile

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

main.cc

2. Comando magico

$ clang-format -i main.cc


3. Codice ben formattato

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

main.cc

4.

Installazione di Happiness

Se ti piace, puoi installarlo con,

$ sudo apt-get install clang-format

comando.


3

Apri il terminale ed esegui:

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

... dove unformatted-source-code.cpp è il file che ha un codice sorgente C ++ non formattato, come ad esempio il codice nell'esempio.

Oppure, se non è possibile installarlo, è possibile scaricare il pacchetto con apt-get download indented estrarlo dpkg-deb -x indent*.deb fs/:, il binario di rientro si trova in fs/usr/bin/cui fs è una directory nella directory principale. Se copi il file unformatted-source-code.cpp nello stesso posto, fs/usr/bin/i comandi per indentare il codice dal terminale sono:

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

Questi comandi possono essere eseguiti come utente normale. Non è necessario essere root.


2
Non ho alcun privilegio di root o sudo in quanto questa è una macchina aziendale.
user9993

5
@ user9993 Puoi scaricare il pacchetto apt-get download indented estrarlo :, dpkg-deb -x indent*.deb fs/il binario del rientro si trova in fs/usr/bin/.
Lekensteyn,

2

Di default nano dovrebbe essere installato in Ubuntu.

È possibile utilizzare nano -i fileper modificare con il rientro automatico abilitato.

Ciò potrebbe non modificare le linee esistenti, poiché potrebbe essere necessario rientrare manualmente.

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


1

astyle e indent vengono in mente, ma un'installazione Ubuntu predefinita non include neanche. Naturalmente, se si dispone di un compilatore C, è possibile compilarli e installarli nel proprio PERCORSO da qualche parte.

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

1

emacs:

  • aprire il file c

  • seleziona tutto

  • rientro (tasto tab)

  • salvare il file

HTH

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.