1. 程式人生 > >Astyle 快速入門,常用指令

Astyle 快速入門,常用指令

cpp together -i less created nth 表示 uri multiple

--style=java -n -p -c !E

astyle是一個命令行工具,命令語法很簡單:
astyle [options] < original > Beautified
astyle [options] Foo.cpp Bar.cpp [...]

例如:

astyle --style=ansi foo.cpp

上面的命令將美化foo.cpp文件,更改其風格為ANSI,並將原始文件備份到foo.cpp.orgin。所以,你可以安全的使用該軟件而不必擔心會將代碼改得無法回頭。

預定風格

具體的來說,astyle包含了以下幾種預定義風格,只需在參數中簡單指定即可使用:

  --style=ansi:ANSI 風格格式和縮進

namespace foospace
{
 int Foo()
 {
  if (isBar)
  {
   bar();
   return 1;
  }
  else
   return 0;
 }
}


  --style=kr :Kernighan&Ritchie 風格格式和縮進

namespace foospace {
 int Foo() {
  if (isBar) {
   bar();
   return 1;
  } else
   return 0;
 }
}


  --style=linux :Linux 風格格式和縮進

namespace foospace
{
 int Foo()
 {
  if (isBar) {
   bar();
   return 1;
  } else
   return 0;
 }
}


  --style=gnu :GNU 風格格式和縮進

namespace foospace
{
 int Foo()
 {
  if (isBar)
  {
   bar();
   return 1;
  }
  else
   return 0;
 }
}


  --style=java :Java 風格格式和縮進

class foospace {
 int Foo() {
  if (isBar) {
   bar();
   return 1;
  } else
   return 0;
 }
}

1. 常用功能

(1) 單個文件--缺省美化

astyle --style=ansi Form1.cs

(2) 單個文件--更改縮進2個空格
astyle --style=ansi --indent=spaces=2 Form1.cs
缺省縮進一個TAB,也可以顯式說明使用Tab,如下:
astyle --style=ansi --indent=tab Form1.cs

(3) 處理多個文件--有限個
astyle --style=ansi Form1.cs Form2.cs

(4) 批量處理多個文件--無限個
for /R ./ %f in (*.cs) do astyle --style=ansi "%f"
說明:/R表明遍歷一個目錄樹,後面緊跟的路徑是根,缺省為當前目錄。
本例中,根為./表示當前目錄,命令等價於:
for /R %f in (*.cs) do astyle --style=ansi "%f"
作用是從(目錄樹根)當前目錄開始,查找所有java文件,包含子目錄中的文件;然後交給astyle處理。
當然,目錄樹根也可以使用絕對路徑,下面的命令查找C盤所有的java文件並處理。
for /R c:/ %f in (*.cs) do astyle --style=ansi "%f"

2. 其他比較有用的開關:

(1) -f
在兩行不相關的代碼之間插入空行,如import和public class之間、public class和成員之間等;

(2) -p
在操作符兩邊插入空格,如=、+、-等。
如:int a=10*60;
處理後變成int a = 10 * 60;

(3) -P
在括號兩邊插入空格。另,-d只在括號外面插入空格,-D只在裏面插入。
如:MessageBox.Show ("aaa");
處理後變成MessageBox.Show ( "aaa" );

(4) -U
移除括號兩邊不必要的空格。
如:MessageBox.Show ( "aaa" );
處理後變成MessageBox.Show ("aaa");

(5) -V
將Tab替換為空格。

(6) -n
不保存備份

Artistic Style 1.15.3 (http://www.bigfoot.com/~davidsont/astyle)
(created by Tal Davidson,
[email protected])

Modified edition by Qiongzhu Wan, 2004.09

Usage : astyle [options] < original > Beautified
astyle [options] Foo.cpp Bar.cpp [...]

When indenting a specific file, the resulting indented file RETAINS the
original file-name. The original pre-indented file is renamed, with a
suffix of ".orig" added to the original filename.

By default, astyle is set up to indent C/C++/C# files, with 4 spaces per
indent, a maximal indentation of 40 spaces inside continuous statements,
and NO formatting.

Option‘s Format:
----------------
Long options (starting with ‘--‘) must be written one at a time.
Short options (starting with ‘-‘) may be appended together.
Thus, -bps4 is the same as -b -p -s4.

Predefined Styling options:
--------------------
--style=ansi
ANSI style formatting/indenting.

--style=kr
Kernighan&Ritchie style formatting/indenting.

--style=gnu
GNU style formatting/indenting.

--style=java
Java mode, with standard java style formatting/indenting.

--style=linux
Linux mode (i.e. 8 spaces per indent, break definition-block
brackets but attach command-block brackets.

Indentation options:
--------------------
-c or --mode=c
Indent a C, C++ or C# source file (default)

-j or --mode=java
Indent a Java(TM) source file

-s or -s# or --indent=spaces=#
Indent using # spaces per indent. Not specifying #
will result in a default of 4 spacec per indent.

-t or -t# or --indent=tab=#
Indent using tab characters, assuming that each
tab is # spaces long. Not specifying # will result
in a default assumption of 4 spaces per tab.

-T# or --force-indent=tab=# Indent using tab characters, assuming tha
t each
tab is # spaces long. Force tabs to be used in areas
Astyle would prefer to use spaces.

-C or --indent-classes
Indent ‘class‘ blocks, so that the inner ‘public:‘,
‘protected:‘ and ‘private: headers are indented in
relation to the class block.

-S or --indent-switches
Indent ‘switch‘ blocks, so that the inner ‘case XXX:‘
headers are indented in relation to the switch block.

-K or --indent-cases
Indent ‘case XXX:‘ lines, so that they are flush with
their bodies..

-N or --indent-namespaces
Indent the contents of namespace blocks.

-B or --indent-brackets
Add extra indentation to ‘{‘ and ‘}‘ block brackets.

-G or --indent-blocks
Add extra indentation entire blocks (including brackets).

-L or --indent-labels
Indent labels so that they appear one indent less than
the current indentation level, rather than being
flushed completely to the left (which is the default).

-m# or --min-conditional-indent=#
Indent a minimal # spaces in a continuous conditional
belonging to a conditional header.

-M# or --max-instatement-indent=#
Indent a maximal # spaces in a continuous statement,
relatively to the previous line.

-E or --fill-empty-lines
Fill empty lines with the white space of their
previous lines.

--indent-preprocessor
Indent multi-line #define statements

Formatting options:
-------------------
-b or --brackets=break
Break brackets from pre-block code (i.e. ANSI C/C++ style).

-a or --brackets=attach
Attach brackets to pre-block code (i.e. Java/K&R style).

-l or --brackets=linux
Break definition-block brackets and attach command-block
brackets.

--brackets=break-closing-headers
Break brackets before closing headers (e.g. ‘else‘, ‘catch‘, ..).
Should be appended to --brackets=attach or --brackets=linux.

-o or --one-line=keep-statements
Don‘t break lines containing multiple statements into
multiple single-statement lines.

-O or --one-line=keep-blocks
Don‘t break blocks residing completely on one line

-p or --pad=oper
Insert space paddings around operators only.

--pad=paren
Insert space paddings around parenthesies only.

-P or --pad=all
Insert space paddings around operators AND parenthesies.

--convert-tabs
Convert tabs to spaces.

--break-blocks
Insert empty lines around unrelated blocks, labels, classes, ...

--break-blocks=all
Like --break-blocks, except also insert empty lines
around closing headers (e.g. ‘else‘, ‘catch‘, ...).

--break-elseifs
Break ‘else if()‘ statements into two different lines.

Other options:
-------------
--suffix=####
Append the suffix #### instead of ‘.orig‘ to original filename.

-X or --errors-to-standard-output
Print errors and help information to standard-output rather than
to standard-error.

-v or --version
Print version number

-h or -? or --help
Print this help message

Default options file:
---------------------
Artistic Style looks for a default options file in the
following order:
1. The contents of the ARTISTIC_STYLE_OPTIONS environment
variable if it exists.
2. The file called .astylerc in the directory pointed to by the
HOME environment variable ( i.e. $HOME/.astylerc ).
3. The file called .astylerc in the directory pointed to by the
HOMEPATH environment variable ( i.e. %HOMEPATH%/.astylerc ).
If a default options file is found, the options in this file
will be parsed BEFORE the command-line options.
Options within the default option file may be written without
the preliminary ‘-‘ or ‘--‘.

Astyle 快速入門,常用指令