Quellcode-Formatierer / Einrücker


17

Ich benutze Ubuntu 12.04. Ich habe keine root- oder sudo-Rechte, da dies ein Firmencomputer ist.

Gibt es in einer normalen Installation von Ubuntu 12.04 ein Terminalprogramm, mit dem ich hässlichen fehlerhaften Quellcode ohne Einrückung in gut aussehenden Code umwandeln kann?

Auch hier kann ich keine Pakete installieren, also brauche ich eines, das bereits mit Ubuntu geliefert wird, falls es so etwas gibt.

Beispielsweise:

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

Und konvertieren Sie es dann zu:

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

Womit können Sie den Code anzeigen oder bearbeiten? Vermutlich möchten Sie, dass es in Ihrem Editor eingerückt wird, oder? Oder möchten Sie dies über die Befehlszeile für mehrere Dateien tun?
Terdon

Du meinst wie ein Online-Tool?
Braiam

1
Gedit wird IIRC einrücken, und Kate wird anhand des Dateityps hervorheben und einrücken, wenn Sie die Möglichkeit haben, um
Uhr

Antworten:


12

Wenn Sie den VIM-Editor installiert haben, öffnen Sie die Datei mit vim file.cund geben Sie ein, =Gum die Datei von Anfang bis Ende einzurücken. Dann speichere es mit :wq.

Bei Standardinstallationen ist vi(nicht vim) installiert, daher ist das erforderliche identPaket (wie von karel erwähnt) nicht verfügbar.


9

clang-format ist dein Freund! Es ist einfach zu bedienen und nützlich.
Hier einige Informationen dazu.

Verwendung

$ clang-format file > formattedfile

Oder:

$ clang-format -i file


Schritt für Schritt Anleitung

1. Schrecklich formatierter Code

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

main.cc

2. Magischer Befehl

$ clang-format -i main.cc


3. Gut formatierter Code

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

main.cc

4. Alles Gute zum

Installieren

Wenn es dir gefällt, kannst du es installieren mit,

$ sudo apt-get install clang-format

Befehl.


3

Öffnen Sie das Terminal und führen Sie Folgendes aus:

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

... wobei unformatierter Quellcode.cpp die Datei ist, die unformatierten C ++ - Quellcode enthält, wie der Code in Ihrem Beispiel.

Wenn Sie es nicht installieren können, können Sie das Paket mit herunterladen apt-get download indentund extrahieren: dpkg-deb -x indent*.deb fs/Die Einrückungs-Binärdatei befindet sich dort, fs/usr/bin/wo fs ein beliebiges Verzeichnis in Ihrem Ausgangsverzeichnis ist. Wenn Sie die unformatierte Quellcode.cpp-Datei an dieselbe Stelle kopieren, lauten fs/usr/bin/die Befehle zum Einrücken des Codes vom Terminal:

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

Diese Befehle können als normaler Benutzer ausgeführt werden. Es ist nicht notwendig, root zu sein.


2
Ich habe keine Root- oder Sudo-Rechte, da dies ein Firmencomputer ist.
user9993

5
@ user9993 Sie können das Paket mit herunterladen apt-get download indentund extrahieren: dpkg-deb -x indent*.deb fs/Die Einrückungsbinärdatei befindet sich in fs/usr/bin/.
Lekensteyn

2

Standardmäßig sollte Nano in Ubuntu installiert sein.

Mit können Sie nano -i filebearbeiten, wenn der automatische Einzug aktiviert ist.

Bestehende Zeilen werden dadurch möglicherweise nicht geändert. Möglicherweise müssen Sie sie manuell einrücken.

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


1

astyle und Einzug in dem Sinne, aber ein Standard - Ubuntu installieren sind entweder nicht. Wenn Sie einen C-Compiler haben, können Sie diese natürlich kompilieren und irgendwo in Ihrem eigenen PATH installieren.

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

1

Emacs:

  • Öffnen Sie die C-Datei

  • Wählen Sie Alle

  • Einzug (Tabulator-Taste)

  • Datei speichern

HTH

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.