Форматировщик исходного кода / индентор


17

Я использую Ubuntu 12.04. У меня нет никаких привилегий root или sudo, так как это машина компании.

Есть ли в обычной установке Ubuntu 12.04 какая-либо терминальная программа, которую я могу использовать, чтобы превратить уродливый искаженный исходный код, в котором отсутствуют отступы, в красивый код?

Опять же, я не могу установить какие-либо пакеты, поэтому мне нужен пакет, который уже поставляется с Ubuntu, если такая вещь существует.

Например:

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

А затем преобразовать его в:

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

Что вы используете для просмотра или редактирования кода? Предположительно, вы хотите, чтобы в вашем редакторе был отступ? Или вы хотите сделать это из командной строки для нескольких файлов?
Тердон

Вы имеете в виду, как онлайн-инструмент?
Брайам

1
Gedit сделает отступ в IIRC, а kate выделит и сделает отступ на основе типа файла, если у вас есть возможность переключиться на KDE
eyoung100

Ответы:


12

Если у вас установлен редактор vim, откройте файл vim file.cи введите его, =Gчтобы сделать отступ от начала до конца. Тогда сохраните это с :wq.

При установке по умолчанию vi(не vim) установлен, поэтому он не будет иметь требуемого identпакета (как упомянуто karel).


9

Clang-формат твой друг! Его легко использовать и полезно.
Вот некоторая информация об этом.

использование

$ clang-format file > formattedfile

Или:

$ clang-format -i file


Пошаговое руководство

1. Ужасно отформатированный код

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

main.cc

2. Волшебная команда

$ clang-format -i main.cc


3. Хорошо отформатированный код

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

main.cc

4.

Установка счастья

Если вам это нравится, вы можете установить его,

$ sudo apt-get install clang-format

команда.


3

Откройте терминал и запустите:

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

... где unformatted-source-code.cpp - это файл с неотформатированным исходным кодом C ++, таким как код в вашем примере.

Или, если вы не можете установить его, вы можете загрузить пакет apt-get download indentи извлечь его:, dpkg-deb -x indent*.deb fs/двоичный файл с отступом находится fs/usr/bin/там, где fs - любой каталог в вашем домашнем каталоге. Если вы скопируете файл unformatted-source-code.cpp в то же место fs/usr/bin/, то команды для отступа кода из терминала:

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

Эти команды могут быть запущены как обычный пользователь. Не нужно быть пользователем root.


2
У меня нет никаких привилегий root или sudo, так как это машина компании.
user9993

5
@ user9993 Вы можете скачать пакет apt-get download indentи распаковать его: dpkg-deb -x indent*.deb fs/двоичный файл с отступом находится в fs/usr/bin/.
Лекенштейн

2

По умолчанию nano должен быть установлен в Ubuntu.

Вы можете использовать nano -i fileдля редактирования с включенным автоматическим отступом.

Это не может изменить существующие строки, для этого вам, возможно, придется вручную сделать отступ.

Смотрите: http://www.nano-editor.org/dist/v2.0/nano.html


1

На ум приходят astyle и indent , но установка Ubuntu по умолчанию тоже не включает. Конечно, если у вас есть компилятор C, вы можете скомпилировать их и установить где-нибудь в своем собственном PATH.

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

1

Emacs:

  • открыть файл c

  • выбрать все

  • отступ (клавиша табуляции)

  • сохранить файл

НТН

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.