Formatador / indentador do código fonte

17

Estou usando o Ubuntu 12.04. Não tenho privilégios de root ou sudo, pois esta é uma máquina da empresa.

Existe, em uma instalação normal do Ubuntu 12.04, algum programa de terminal que eu possa usar para transformar código fonte malformado e feio que não possui recuo em código de boa aparência?

Mais uma vez, não consigo instalar nenhum pacote, por isso preciso de um que já vem com o Ubuntu, se existir.

Por exemplo:

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

E depois converta-o para:

int main()
{
    test(1);
    another_function(1);
}
user9993
fonte
O que você usa para ver ou editar o código? Presumivelmente, você deseja que seja recuado em seu editor, certo? Ou você deseja fazer isso na linha de comando para vários arquivos?
terdon
Você quer dizer como uma ferramenta online?
Braiam)
1
Gedit vai recuar IIRC, e Kate vai destacar e travessão baseado em filetype se você tem a capacidade de mudar para KDE
eyoung100

Respostas:

12

Se você tiver o editor vim instalado, abra o arquivo com vim file.ce digite =Gpara recuar o arquivo do início ao fim. Em seguida, salve-o com :wq.

Nas instalações padrão, vi(not vim) é instalado, portanto, não terá o identpacote necessário (conforme mencionado por karel).

Lekensteyn
fonte
9

O formato clang é seu amigo! É fácil de usar e útil.
Aqui estão algumas informações sobre isso.

Uso

$ clang-format file > formattedfile

Ou:

$ clang-format -i file


Guia passo a passo

1. Código horrivelmente formatado

#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 bem formatado

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

main.cc

4.

Instalação feliz

Se você gosta, pode instalá-lo com,

$ sudo apt-get install clang-format

comando.

mraron
fonte
3

Abra o terminal e execute:

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

... onde unformatted-source-code.cpp é o arquivo que possui código-fonte C ++ não formatado, como o código do seu exemplo.

Ou, se você não conseguir instalá-lo, poderá fazer o download do pacote apt-get download indente extraí-lo dpkg-deb -x indent*.deb fs/:, o binário de indentação está localizado em fs/usr/bin/onde fs é qualquer diretório no diretório inicial. Se você copiar o arquivo unformatted-source-code.cpp no ​​mesmo local, fs/usr/bin/os comandos para recuar o código do terminal serão:

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

Esses comandos podem ser executados como usuário normal. Não é necessário ser root.

karel
fonte
2
Não tenho privilégios de root ou sudo, pois é uma máquina da empresa.
user9993
5
@ user9993 Você pode baixar apt-get download indente extrair o pacote:, dpkg-deb -x indent*.deb fs/o binário de indentação está localizado em fs/usr/bin/.
Lekensteyn
2

Por padrão, o nano deve ser instalado no ubuntu.

Você pode usar nano -i filepara editar com o recuo automático ativado.

Isso pode não alterar as linhas existentes, pois você pode precisar recuá-lo manualmente.

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

Avinash R
fonte
1

astyle e recuo vêm à mente, mas uma instalação padrão do Ubuntu também não inclui. Obviamente, se você tiver um compilador C, poderá compilá-los e instalá-los em seu próprio PATH em algum lugar.

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

emacs:

  • abrir arquivo c

  • selecionar tudo

  • recuo (tecla tab)

  • salvar Arquivo

HTH

Adão
fonte