残剑

Stop walking today and you'll have to run tomorrow!

Astyle格式化代码

| Comments

astyle是一个开源工具,它可以方便的将代码格式化成自己想要的样式而不必人工修改。可以在终端下输入指令sudo apt-get install astyle安装,也可以到 这里 下载源码后自己编译安装。

下面介绍一下astyle的简单使用。例如有以下的源码:

1
2
3
#include <stdio.h>
int main(int argc, char **argv)
{int i;printf("Just a test!\n");for(i=0;i<10;++i)printf("%d\n",i);}return 0;}

然后在终端下输入以下指令:

1
$ astyle test1.c

效果如下:

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(int argc, char **argv)
{
    int i;
    printf("Just a test!\n");
    for(i=0; i<10; ++i) {
        printf("%d\n",i);
    }
    return 0;
}

当然也可以加上一些选项,例如“astyle —style=bsd test1.c”,“ astyle —style=gnu test1.c”等等。

在vim中的命令模式下,可以使用下面的某一种方式来格式化代码。

1
%!astyle (simple case - astyle default mode is C/C++)

或者

1
%!astyle --mode=c --style=ansi -s2 (ansi C++ style, use two spaces per indent level)

或者

1
1,40!astyle --mode=c --style=ansi (ansi C++ style, filter only lines 1-40)

在格式化完代码后,会生成一个后缀为orig的文件,格式化完成之后将它们删除。为方便使用,可以把它写成一个脚本,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
#! /bin/bash

for f in $(find . -name '*.c' -or -name '*.cpp' -or -name '*.h' -type f)
do
    astyle $f
done

# after formate the code,we need to rm '*.orig' files 
for f in $(find . -name '*.orig' -type f)
do
    rm $f
done

Comments