Formater / indenter kodu źródłowego

17

Używam Ubuntu 12.04. Nie mam uprawnień roota ani sudo, ponieważ jest to komputer firmowy.

Czy w normalnej instalacji Ubuntu 12.04 jest jakiś program terminalowy, za pomocą którego mogę przekształcić brzydko zniekształcony kod źródłowy, który nie ma żadnego wcięcia w ładnie wyglądający kod?

Ponownie nie mogę zainstalować żadnych pakietów, więc potrzebuję takiego, który jest już dostarczany z Ubuntu, jeśli coś takiego istnieje.

Na przykład:

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

A następnie przekonwertuj go na:

int main()
{
    test(1);
    another_function(1);
}
użytkownik9993
źródło
Czego używasz, aby zobaczyć lub edytować kod? Przypuszczalnie chcesz, żeby było wcięte w twoim edytorze, prawda? A może chcesz to zrobić z wiersza polecenia dla wielu plików?
terdon
Masz na myśli narzędzie online?
Braiam
1
Gedit będzie wcinał IIRC, a Kate będzie podświetlać i
wcinać

Odpowiedzi:

12

Jeśli masz zainstalowany edytor vim, otwórz plik za pomocą vim file.ci wpisz, =Gaby wciąć plik od początku do końca. Następnie zapisz za pomocą :wq.

W domyślnych instalacjach vi(nie vim) jest instalowany, więc nie będzie miał wymaganego identpakietu (jak wspomniał Karel).

Lekensteyn
źródło
9

Format clang jest twoim przyjacielem! Jest łatwy w użyciu i przydatny.
Oto kilka informacji na ten temat.

Stosowanie

$ clang-format file > formattedfile

Lub:

$ clang-format -i file


Przewodnik krok po kroku

1. Okropnie sformatowany kod

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

main.cc

2. Magiczne polecenie

$ clang-format -i main.cc


3. Dobrze sformatowany kod

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

main.cc

4.

Instalowanie szczęścia

Jeśli Ci się podoba, możesz go zainstalować za pomocą,

$ sudo apt-get install clang-format

Komenda.

mraron
źródło
3

Otwórz terminal i uruchom:

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

... gdzie unformatted-source-code.cpp to plik, który ma niesformatowany kod źródłowy C ++, taki jak kod w twoim przykładzie.

Lub jeśli nie możesz go zainstalować, możesz pobrać pakiet apt-get download indenti wyodrębnić go dpkg-deb -x indent*.deb fs/:, plik binarny wcięcia znajduje się w fs/usr/bin/miejscu, gdzie fs jest dowolnym katalogiem w twoim katalogu domowym. Jeśli skopiujesz niesformatowany kod źródłowy.cpp w to samo miejsce fs/usr/bin/, wówczas polecenia do wcięcia kodu z terminala to:

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

Te polecenia mogą być uruchamiane jako zwykły użytkownik. Nie trzeba być rootem.

Karel
źródło
2
Nie mam uprawnień roota ani sudo, ponieważ jest to komputer firmowy.
user9993
5
@ user9993 Możesz pobrać pakiet apt-get download indenti wyodrębnić go :, plik dpkg-deb -x indent*.deb fs/binarny wcięcia znajduje się w fs/usr/bin/.
Lekensteyn
2

Domyślnie nano powinien być zainstalowany w Ubuntu.

Możesz użyć nano -i filedo edycji z włączonym automatycznym wcięciem.

Nie może to zmienić istniejących linii, dlatego może być konieczne ręczne wcięcie.

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

Avinash R.
źródło
1

przychodzą mi na myśl astyle i wcięcia , ale domyślna instalacja Ubuntu również nie obejmuje. Oczywiście, jeśli masz kompilator C, możesz go skompilować i zainstalować gdzieś we własnej ŚCIEŻCE.

# Something like -
./configure --prefix=$HOME/tools
make
make install
PATH=$PATH:$HOME/tools/bin
Elliott Frisch
źródło
1

emacs:

  • otwórz plik c

  • Zaznacz wszystko

  • wcięcie (klawisz tab)

  • Zapisz plik

HTH

Adam
źródło