2013-03-09 2 views
0

Другой вопрос.Выравнивание кода C с использованием сценария оболочки

Предположим, у меня есть следующая база кода. Существующий код выглядит следующим образом.

int main() { 
/*Commented Added by abc 
    int abc; */ 
/* Code Added by abc */ 
    int def; 
} 

Я бы хотел, чтобы новый код был следующим.

int main() { 
    /*Commented by abc 
    int abc; */ 
    /* Added by abc */ 
    int def; 
} 

Там нет никакого фактического изменения кода делается в приведенном выше примере. Однако комментарии правильны, основываясь на новом добавленном коде. То есть Я искал новую строку кода, добавляемую ABC, и присваивал предыдущие пару строк в соответствии с этим выравниванием строки.

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

+1

Возможно, есть: - http://stackoverflow.com/questions/1609805/code-formatter-beautifier-for-c-on-linux-for-emacs-user ответы охватывают другие платформы, например http: //www.gnu .org/software/indent/ – QuentinUK

+1

Есть инструменты, которые делают это; они не являются сценариями оболочки, а основными программами на C, которые понимают очень сильную синтаксическую синтаксис. Вы указали «indent»; это лишь один из многих. «астайл» - другой; «uncrustify» - это другое; 'cb' (C Beautifier) ​​- это оригинальная (7-я редакция UNIX ™) программа этого типа, но вам будет трудно найти ее и, вероятно, она не захочет, если вы это сделаете. Обратите внимание, что 'vim' часто можно использовать (команда' = '). Кроме того, изменения лучше всего не хранить в исходном коде, а в системе управления версиями, которую вы используете, - вы используете ее, не так ли? –

+0

Правильная вещь здесь - удалить комментарии и использовать VCS. –

ответ

0

Как об этом сыром способе:

VIMINIT='call feedkeys("gg=G:wq\<CR>")' vi myFile.c 
0

GNU Indent может преобразовать файлы C в единый стиль, и он приходит с большим количеством опций - некоторые из которых относится к размещению комментариев.

Смежные вопросы