Formateur / indenteur de code source

17

J'utilise Ubuntu 12.04. Je n'ai aucun privilège root ou sudo car il s'agit d'une machine d'entreprise.

Existe-t-il, dans une installation normale d'Ubuntu 12.04, un programme de terminal que je peux utiliser pour transformer un code source laid et mal formé qui n'a aucune indentation en un joli code?

Encore une fois, je ne peux installer aucun paquet, j'ai donc besoin d'un qui est déjà fourni avec Ubuntu, si une telle chose existe.

Par exemple:

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

Et puis convertissez-le en:

int main()
{
    test(1);
    another_function(1);
}
user9993
la source
Qu'utilisez-vous pour voir ou modifier le code? Vraisemblablement, vous voulez qu'il soit mis en retrait dans votre éditeur, non? Ou voulez-vous le faire à partir de la ligne de commande pour plusieurs fichiers?
terdon
Vous voulez dire comme un outil en ligne?
Braiam
1
Gedit mettra en retrait IIRC, et Kate mettra en évidence et mettra en retrait en fonction du type de fichier si vous avez la possibilité de passer à KDE
eyoung100

Réponses:

12

Si l'éditeur vim est installé, ouvrez le fichier avec vim file.cet tapez =Gpour mettre le fichier en retrait du début à la fin. Enregistrez-le ensuite avec :wq.

Sur les installations par défaut, vi(not vim) est installé, il n'aura donc pas le identpackage requis (comme mentionné par karel).

Lekensteyn
la source
9

clang-format est votre ami! C'est facile à utiliser et utile.
Voici quelques informations à ce sujet.

Usage

$ clang-format file > formattedfile

Ou:

$ clang-format -i file


Guide étape par étape

1. Code horriblement formaté

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

main.cc

2. Commande magique

$ clang-format -i main.cc


3. Code bien formaté

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

main.cc

4. Happiness

Installation

Si vous l'aimez, vous pouvez l'installer avec,

$ sudo apt-get install clang-format

commander.

mraron
la source
3

Ouvrez le terminal et exécutez:

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

... où unformatted-source-code.cpp est le fichier qui contient du code source C ++ non formaté, tel que le code de votre exemple.

Ou si vous ne pouvez pas l'installer, vous pouvez télécharger le package avec apt-get download indentet l'extraire dpkg-deb -x indent*.deb fs/:, le binaire de retrait est situé dans fs/usr/bin/où fs est n'importe quel répertoire de votre répertoire personnel. Si vous copiez le fichier unformatted-source-code.cpp au même endroit, fs/usr/bin/les commandes pour mettre en retrait le code du terminal sont les suivantes:

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

Ces commandes peuvent être exécutées en tant qu'utilisateur normal. Il n'est pas nécessaire d'être root.

Karel
la source
2
Je n'ai aucun privilège root ou sudo car il s'agit d'une machine d'entreprise.
user9993
5
@ user9993 Vous pouvez télécharger le package avec apt-get download indentet l'extraire :, dpkg-deb -x indent*.deb fs/le binaire de retrait se trouve dans fs/usr/bin/.
Lekensteyn
2

Par défaut, nano doit être installé dans ubuntu.

Vous pouvez utiliser nano -i filepour modifier avec le retrait automatique activé.

Cela peut ne pas modifier les lignes existantes, car vous devrez peut-être les indenter manuellement.

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

Avinash R
la source
1

astyle et indentation me viennent à l'esprit, mais une installation Ubuntu par défaut ne comprend pas non plus. Bien sûr, si vous avez un compilateur C, vous pouvez les compiler et les installer quelque part dans votre propre PATH.

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

emacs:

  • ouvrir le fichier c

  • tout sélectionner

  • retrait (touche de tabulation)

  • enregistrer le fichier

HTH

Adam
la source