如何自動調整代碼格式 - vim /Visual Studio/ Source Insight...

 ArtisticStyle----很好用的C/C++樣式格式化工具(支持VC6)html

下載地址:
http://srgb.googlecode.com/files/AStyle_2.02_windows.7z

把astyle.exe 複製到 C:\WINDOWS 目錄裏,省的指定路徑
VC6++ 設置方法
菜單
->工具->定製->工具菜單內容->新建菜單,參數以下
命令行:astyle.exe
變量:
--style=k&r --brackets=break --indent=spaces --indent-cases --indent-preprocessor --pad-header --pad-oper --unpad-paren --keep-one-line-statements --keep-one-line-blocks --convert-tabs $(FileName)$(FileExt)

初始目錄: $(FileDir)



VC2008 外部工具裏設置,還能夠添加快捷鍵
命令:astyle.exe
參數:
--style=k&r --brackets=break --indent=spaces --indent-cases --indent-preprocessor --pad-header --pad-oper --unpad-paren --keep-one-line-statements --keep-one-line-blocks --convert-tabs $(ItemFileName)$(ItemExt)
初始目錄: $(ItemDir)

java

CodeBlocks 設置差很少,不少綠色版的已經設置好了


AStyle_2.02_windows.zip
bin 目錄裏有官方編譯好的

  Artistic Style 2.01
  Maintained by: Jim Pattee
  Original Author: Tal Davidson

Usage : astyle [options] Source1.cpp Source2.cpp [...]
  astyle [options] < Original > Beautified

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.    linux

 

 

 

在source Insight中加入Artistic Style實現代碼的格式化

Artistic style是一個開源的用於格式化代碼的項目,c++

網站是http://astyle.sourceforge.net/程序員

下載地址:http://sourceforge.net/projects/astyle/files/astyle/編程

1.首先安裝Source Insight(如下簡稱SI),而後下個Artistic Style(如下簡稱AS)的Windows版本,解壓。vim

解壓後有4個文件夾,bin目錄下就是編譯好的AS,src和doc下分別是源代碼和文檔。windows

假設解壓路徑爲E:\astyle121,則E:\astyle121\bin下就是AS的可執行程序,添加到SI中的方法以下:安全

2.在SI的菜單中選擇「選項->自定義命令」,打開自定義命令對話框,而後單擊添加,輸入一個命令名稱,這裏隨意輸入,它只用來在菜單中顯示,好比輸入AS以後肯定。而後在運行裏填入你的AS可執行程序名,須要輸入完整路徑以便SI找到,後面跟參數less

--options=c.opt和文件名,表示用c.opt來作格式模板,文件名用SI的通配符%f代替。好比此例中應輸入:

E:\astyle121\bin\AStyle.exe --options=c.opt %f

選中「控制」項中的「首先保存文件」和「完整後終止」。其餘默認。

3.而後點擊「菜單」按鈕,調出菜單對話框。在左邊找到你剛剛新建的命令「自定義命令:AS」,單擊選中。在menu中選擇你要把這個命令添加到的菜單,好比選擇「視圖」,在下面找到「<菜單結束>」,單擊選中。而後點插入。此時AS命令就被插入到你的視圖菜單下了,你能夠在你的菜單->視圖中找到他。

4.打開你的源代碼,選擇試圖菜單中的AS。SI會提示你文件被外部編輯器修改,是否從新載入,選擇是。就能夠看到格式化好的代碼了。

 

快捷鍵的添加:

1.選項->鍵分配

2.左側找到「自定義命令:AS」,單擊,而後選擇分配新鍵,按下新的快捷鍵,保存。

之後就能夠不用去菜單裏找,直接按快捷鍵就好了。

 

關於c.opt的創建:

新建個文本文檔,寫入如下內容:

style=ansi
# set default parsing to c/cpp files
mode=c
# brackets should be attached to pre-bracket lines
brackets=break
# set 6 spaces per indent
indent=spaces=4
# indent switch blocks
indent-switches
# suffix of original files should be .pre
suffix=.pre
#Add extra indentation to namespace blocks
indent-namespaces
max-instatement-indent=80
min-conditional-indent=0
pad=oper

而後把文本文檔的文件名改成c.opt

 

Artistic Style 2.02

A Free, Fast and Small Automatic Formatter
for C, C++, C#, and Java Source Code


Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C# and Java programming languages.

When indenting source code, we as programmers have a tendency to use both spaces and tab characters to create the wanted indentation. Moreover, some editors by default insert spaces instead of tabs when pressing the tab key, and other editors (Emacs for example) have the ability to "pretty up" lines by automatically setting up the white space before the code on the line, possibly inserting spaces in a code that up to now used only tabs for indentation.

Since the NUMBER of space characters showed on screen for each tab character in the source code changes between editors (unless the user sets up the number to his liking...), one of the standard problems programmers are facing when moving from one editor to another is that code containing both spaces and tabs that was up to now perfectly indented, suddenly becomes a mess to look at when changing to another editor. Even if you as a programmer take care to ONLY use spaces or tabs, looking at other people's source code can still be problematic.

To address this problem, Artistic Style was created - a filter written in C++ that automatically re-indents and re-formats C / C++ / C# / Java source files. It can be used from a command line, or it can be incorporated as classes in another C++ program.

 

Linux Version Install

GCC Compiler

To compile using the GCC compiler you must have GCC (3.1 or better) installed. There is no autoconf dependency. To build the Artistic Style configurations use the makefile located in the astyle/build/gcc directory. The executables will be in the astyle/build/gcc/bin directory. To build the command line configuration enter the following:

cd astyle/build/gcc
make

To build the other astyle configurations you can enter the file name or a symbolic name. Entering "make astyle" or "make release" will build the command line configuration. Following are the symbolic names and file names (in parens) of the various configurations:

  • release builds the Artistic Style command line program (astyle). This is the default option.
  • shared builds the Artistic Style program as a shared library (libastyle.so).
  • static builds the Artistic Style program as a static library (libastyle.a).
  • debug builds the Artistic Style command line program with debugging information (astyled).
  • shareddebug builds the Artistic Style program as a shared library with debugging information (libastyled.so).
  • staticdebug builds the Artistic Style program as a static library with debugging information (libastyled.a).
  • all builds all of the above configurations.

    The following Java shared library builds are separate from the above. They include a Java Native Interface (JNI) and require that the Java Development Kit (JDK) be installed. The environment variable JAVA_HOME should be defined. It defines the install directory for the JDK. The makefile also has default install directories for Java 5 and 6. If the compile cannot find the file jni.h, either set the variable or change the value in the makefile.

  • java builds the Artistic Style program as a shared library which includes the JNI (libastylej.so).
  • javadebug builds the Artistic Style program as a shared library which includes the JNI and debugging information (libastylejd.so).
  • javaall builds all of the above java configurations.

More than one configuration can be built at the same time. For example, to build all of the release configurations enter:

cd astyle/build/gcc
make release shared static

 

http://astyle.sourceforge.net/astyle.html  (使用方法)

http://astyle.sourceforge.net/

Usage

Artistic style is a console program that receives information from the command line. The format of the command line is:

astyle  [options]  SourceFile1  SourceFile2  SourceFile3  [ . . . ]

The block parens [ ] indicate that more than one option or more than one filename can be entered. They are NOT actually included in the command. For the options format see the following Options section.

  Example to format a single file:

astyle  --style=allman  /home/user/project/foo.cpp

  Example to format all .cpp and .h files recursively:

astyle  --style=allman --recursive  /home/user/project/*.cpp  /home/user/project/*.h

Another option will format a single file and change the name:

astyle [options] < OriginalSourceFile > BeautifiedSourceFile

The < and > characters are used to redirect the files into standard input (cin) and out of standard output (cout) - don't forget them! With this option only one file at a time can be formatted. Wildcards are not recognized, there are no console messages, and a backup is not created.

 

關於google的C++編碼規範

看google的C++編碼規範也有一段時間了,可是實施起來有些難度。

一來寫代碼的時候有些細節就忘了,好比if後面的空格,花括號左邊的空格神馬的...

二來有時候拿到別人寫的代碼,看不慣格式又不想去改,內心還老是彆扭...

因而開始找格式化代碼的工具,因而今天找到了Artistic Style。

今天記錄下Artistic Style的配置,怎麼添加爲VS的插件就不說了,網上一搜一大把。本人的配置命令以下:

--style=java -N -S -M -p -H -U -k1 $(ItemDir)$(ItemFileName)$(ItemExt)

--style=java是風格是java的編碼風格,選java是由於離google的編碼規範比較近;

-N是縮進namespace;

-S是縮進switch下的case子句;

-M是縮進函數多個參數放在不一樣行的狀況,這個說不清楚,得放個代碼示例:

格式化前:

1 fooArray[] = { red,2          green,3          blue };4 5 fooFunction(barArg1,6          barArg2,7          barArg3);

格式化後:

1 fooArray[] = { red,2                green,3                blue };4 5 fooFunction(barArg1,6             barArg2,7             barArg3);

-p是操做符左右留空格(++,--這樣的就不留了);

-H是'if', 'for', 'while'等關鍵字右邊留空格;

-U是移除括號裏外的空格;

-k1是*和&在表示指針和引用類型時,和類型名稱並緊,和變量名之間留空格。

後面三個就是VS的環境變量了,分別表示路徑名、文件名和文件擴展名。合起來就是要格式化的文件的絕對路徑名。

工具不大,可是用起來超讚。

 

用法:

AStyle.exe --style=ansi --indent=spaces=4 -M80 -k1 -p -j -D -H -c -w test.cpp

--style=ansi ansi C風格代碼 我我的喜歡用這個風格

    void Foo(bool isFoo)
    {
        if (isFoo)
        {
            bar();
        }
        else
        {
            anotherBar();
        }
    }

--indent=spaces=4 縮進用4個空格



-p  在運算符號左右加上空格

    if (foo==2)
        a=bar((b-c)*a,d--);
    becomes:

    if (foo == 2)
        a = bar((b - c) * a, d--);

-j  給每一個if增長大括號

    if (isFoo)
        isFoo = false;
    becomes:

    if (isFoo) {
        isFoo = false;
    }

-D  在小括號邊上增長上一個空格

    if (isFoo(a, b))
        bar(a, b);
    becomes:

    if ( isFoo( a, b ) )
        bar( a, b );

-H 在c/c++ 關鍵字的後面增長一個空格

    if(isFoo(a, b))
        bar(a, b);

    becomes:

    if (isFoo(a, b))
        bar(a, b);

-c

    把TAB字符替換成空格爲何要把TAB替換成空格?主要是由於各類不一樣的編輯器對TAB的解釋不同形成的。

    有的編輯器把TAB解釋成4個空格,有的是8個,還有的是2個。這樣會破壞原有的代碼的對齊的結構,

    所以最好把TAB替換成空格,這樣無論在任何編輯器下面代碼都是以對齊的風格來顯示。

-k1 --align-pointer=type

    char *foo1;
    char &foo2;

    becomes (with align-pointer=type):

    char* foo1;
    char& foo2;

-M# 對定義的參數和變量進行對齊

    fooArray[] = { red,
            green,
            blue };

    fooFunction(barArg1,
            barArg2,
            barArg3);
    becomes (with larger value):

    fooArray[] = { red,
                  green,
                  blue };

    fooFunction(barArg1,
                barArg2,
                barArg3);

-w  對宏進行對齊處理

    #define Is_Bar(arg,a,b) \
    (Is_Foo((arg), (a)) \
    || Is_Foo((arg), (b)))
    becomes:

    #define Is_Bar(arg,a,b) \
        (Is_Foo((arg), (a)) \
        || Is_Foo((arg), (b)))



看到上面這麼多的美化代碼的參數,真的很hi。

AStyle.exe --style=ansi --indent=spaces=4 -M80 -k1 -p -j -D -H -c -w $(ItemFileName)$(ItemExt)
這個參數是我自已用的,大夥能夠根據自已的風格來設定。

若是集成到VS當中呢?

1. 把AStyle.exe 拷到 「C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\」目錄下

2. Tools –> External Tools

如圖增長一個外部工具配置

C++製做的開源代碼美化工具:AStyle_33161

201109280029104046.png(37.69 K)
9/28/2011 4:57:55 PM



在Tools菜單下面會多出一個Beautify點擊它就能夠來美化當前的文件 以下圖:

C++製做的開源代碼美化工具:AStyle_33162

201109272345172949.png(39.09 K)
9/28/2011 4:57:55 PM



整體來講這個工具美化的效果仍是很不錯的,喜歡的人你們均可以試試。

 

 

使用Astyle 幫助整理代碼

Astyle 的全稱是Artistic Style,某種程度是目前最好用的代碼整理工具,不少所謂的代碼整理工具其實都是拿這個東東改進,開發的。其網址在,http://astyle.sourceforge.net/,最新版本是2.02,基本已經穩定,最近升級不多了。

Astyle好在那兒呢,一方面他支持大部分代碼格式,一方面他支持C, C++, C#, and Java等語言,一方面他能夠編譯成LINUX版本,直接用命令行方式,一方面也能夠和大部分IDE環境集成。因此其是編寫代碼處理的利器。

另外,雖然不少IDE環境有本身的一些代碼格式化方法,好比visual studio下選擇代碼,快捷鍵Ctrl +KF(或者Alt +F8,Ctrl+E,F,Ctrl+E,D之類),就能夠格式化整理代碼。可是仍是術有專攻,visual studio的代碼格式化不會自動幫我將代碼中間的舊有tab 替換成空格,在分析某些稍微複雜的語法(特別是模版)時,常常會出現換行對齊錯誤的問題,並且visual studio不一樣版本下,本身默認的某些對齊方式也有所不一樣。

因此我我的仍是推薦按期用Astyle整理一下本身的代碼,可讓本身的代碼更加養眼。從網站下載回來的Astyle有Windows編譯版本,也有源代碼。在Linux下你能夠本身編譯。整日駭客帝國的兄弟也可使用。

咱們先介紹一下Astyle如何集成到IDE開放工具中,

若是單獨是命令行,Astyle的使用比較簡單,我通常都將選項放入到配置文件裏面。固然若是你記憶力超凡,能夠直接輸入參數另說。

astyle --options=astyle.conf  文件名稱   [生成文件名稱]

若是你和我同樣,雖然喜歡用visual studio基礎環境,你能夠打開菜單Tools\External Tools。打開外部工具設置界面。

你能夠根據你本身的喜愛一次格式化一個文件,配置以下:

Title:  AStyle File

【說明:任意輸入】

Command: F:\MyTools\Astyle\bin\AStyle.exe

【說明:絕對路徑】

Arguments: --options=F:\MyTools\Astyle\bin\astyle.conf $(ItemFileName)$(ItemExt) 

【說明:選項文件也用絕對路徑,$(ItemFileName)$(ItemExt) 表示當前要處理的文件】

Initial directory: $(ItemDir)    表示處理文件的目錄

【說明:在那個目錄進行處理,通常選擇$(ItemDir)】

Use Output window: 勾選

【說明:將astyle的輸出放到output窗口】

也能夠一次將Porject下全部的文件所有格式化了。配置以下:

Title:  AStyle Project

【說明:任意輸入】

Command: F:\MyTools\Astyle\bin\AStyle.exe

【說明:絕對路徑】

Arguments: --options=F:\MyTools\Astyle\bin\astyle.conf *.h *.cpp *.hpp *.c

【說明:選項文件也用絕對路徑,一次將全部的文件都進行處理掉】

Initial directory: $(ItemDir)    表示處理文件的目錄

【說明:在那個目錄進行處理,通常選擇$(ItemDir)】 

Source insight的配置也大同小異。主要就是run這個地方配置成

F:\MyTools\Astyle\bin\AStyle.exe --options=F:\MyTools\Astyle\bin\astyle.conf %f 

其中%f表示當前正在處理的文件。 

下面簡單介紹一下我使用的選項配置說明,,你們有興趣本身閱讀,說明文檔http://astyle.sourceforge.net/astyle.html,也很簡短的說。

#指定文件處理模式,C/C++模式,其餘選擇還有cs,java

--mode=c 

#ANSI標準的文件格式,就是{另啓一行,}另啓一行的那種,其餘選擇不少,不介紹了

--style=ansi 

#縮進採用4個空格

--indent=spaces=4 

#對於單行的語句增長括號

#Add brackets to unbracketed one line conditional statements  (e.g. 'if', 'for', 'while'...).

--add-brackets 

#強制轉換TAB爲空格

--convert-tabs 

#將preprocessor (#define) 這類預約的語句,若是有多行時前面填充對齊,(是對單語句(多行)進行填充呀)

--indent-preprocessor 

#Attach a pointer or reference operator (* or &) to either the variable type (left) or variable name (right), or place it between the type and name.

#*,&這類字符靠近類型

#--align-pointer=type

#*,&這類字符靠近變量名字,目前選擇這個,

--align-pointer=name 

#在操做符號兩邊增長空格字符 ==

--pad-oper 

#在幾個關鍵字後面增長空格

#insert space padding after paren headers only (e.g. 'if', 'for', 'while'...).

--pad-header

#在if,for,while等代碼段先後增長空行,這個其實挺好,但若是你不喜歡,能夠關閉

#Pad empty lines around header blocks (e.g. 'if', 'for', 'while'...).

--break-blocks 

#去掉括號兩邊多餘的空格,

#暫時放棄,不是特別喜歡這個

#Remove extra space padding around parenthesis on the inside and outside.

#--unpad-paren 

#備份文件的後綴,默認是.orig,=none表示不進行備份,

#放棄備份文件,以Astyle的版本,目前作這個沒有什麼差異。並且備份文件會影響你的代碼

--suffix=none 

#行結束用什麼文件格式,UNIX的仍是Windows的,

#--lineend=windows

#後臺開放統一用UNIX的方式

--lineend=linux 

#switch case的代碼也按照標準縮進方式縮進

--indent-switches 

#若是函數開始後面({後面)第一行是註釋,也進行縮進

--indent-col1-comments 

#namespace class內部的public,等我沒有選擇縮進

#--indent-namespaces

#--indent-classes 

#多行條件語句如何進行縮進,=0表示和(對齊,=1表示縮進一次,=2表示縮進兩次,=3縮進一個半

#MS visual studio的默認格式化是縮進一個,

--min-conditional-indent=1 

#最大的縮進對齊長度,默認40,最大120,超過這個長度的多行()內語句不進行縮進,考慮到如今語句都較長

--max-instatement-indent=80

 

若是你是一名VC程序員,你是否被一個問題所困擾?項目小組有編程規範要求嚴格執行,可是項目進度緊張,天天都有大 量的代碼須要完成。很難作到既能保證開發進度,又能編寫出良好風格、縮進規範的代碼。若是採用其餘工具對源文件進行代碼整理,又需在VC以外從新打開源代 碼,整理結果不能直接在VC中查看編譯。能不能在VC中集成一種工具,輕鬆點擊VC按鈕便可整理源碼呢?回答是有。

  下面我就介紹一個名爲astyle的開源代碼整理工具以及在VC開發環境中集成配置的方法。能夠迅速實如今VC中進行代碼整理的功能,但願能給你必定的幫助。

  一、 訪問http://sourceforge.net/projects/astyle,下載astyle包,包括源文件、可執行文件、使用說明等。

  二、 拷貝astyle.exe到c:\winnt\system32下。

  三、 接下來配置VC,添加astyle代碼整理功能。

   1) 在VC中新建菜單項"格式整理"。在工具欄上點擊右鍵打開Customize窗口,在Tools標籤頁新建一個菜單項:"格式整理",並在Command 中輸入菜單項對應外掛工具程序當前所在路徑:"C:\winnt\system32\astyle.exe"。


  2) 在Arguments中輸入外掛工具程序配置參數--style=ansi ${FileName}${FileExt}。其中 --style=ansi表示選擇使用ANSI 風格格式和縮進。固然也可選用其餘風格,可選的風格和樣例以下:

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

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

 

astyle是一個我本身經常使用的開放源碼工具。它能夠方便的將程序代碼格式化成本身想要的樣式而沒必要人工修改。原本嘛,做爲高等生物應該優先去作一些智慧的事情,而不是把時間消耗在機器能夠完美完成的事情上。

想要馬上開始?請先去主頁http://sourceforge.net/projects/astyle下載最新版本。能夠選擇二進制版本,也能夠下載源碼自行編譯。總之獲得可執行文件後請將astyle放在Path(C:\Program Files\Microsoft Visual Studio 8\Common7\IDE)中,這樣會方便不少。

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;
 }
}

從這裏開始介紹astyle的高級應用!這裏要介紹的是兩種應用情形,一是在Visual Studio中整合,二是批量處理。

先看如何在Visual Studio中整合。看圖說話!

第一步:點擊「工具」菜單

第一步:點擊「工具」菜單

第二步:點擊「外部工具」

第二步:點擊「外部工具」

第三步:配置並保存

在對話框中點擊「添加」,如圖填入各項。其中參數填寫 --style=ansi $(ItemFileName)$(ItemExt)

能夠勾選「使用輸出窗口」,這樣將不會顯示黑色的命令窗口。相關信息都會顯示在Visual Studio中。

通過上面設置以後,只需點擊該菜單項就能夠將當前文檔格式化成ansi風格。若是你想要其它風格,能夠自行設置參數。

值得注意的是在低版本的Visual Studio中,默認設置運行外部程序不會保存當前文檔。這樣的話若是在未保存的狀況下運行該命令,未保存部分將會丟失。這個能夠經過設置一個選項來解決。Visual Studio 6.0中:Options -> Editor -> Save Options -> Save before running tools 將該項勾選便可。我已經驗證,在Visual Studio 2005中不用擔憂這類問題,能夠放心使用。可是做爲一個好習慣,我仍然建議你隨時保存你的工做,尤爲是作這種大幅度改動以前,甚至應該對源代碼進行Check in操做。不知道Check in是什麼?不要緊,過幾天我還會寫一篇關於代碼控制的文章,應該能夠解決你的疑惑。

1.經常使用功能
(1) 單個文件--缺省美化
astyle --style=ansi Form1.cs
處理前的代碼:
     private void Form1_Load(object sender, EventArgs e)
     {
         int s;
         for (int i=0;i<10;i++){
             for (int j=0;j<10; j++){
                 s = s+j+i;}
         }
     }
處理後:
     private void Form1_Load(object sender, EventArgs e)
     {
         int s;
         for (int i=0;i<10;i++)
         {
             for (int j=0;j<10; j++)
             {
                 s = s+j+i;
             }
         }
     }

(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替換爲空格。

下面再介紹第二項獨門絕技:批量格式化!

有時候你會有不少文件須要格式化成統一風格,難道一個個點擊菜單?不!那樣太累了。

在Windows中,咱們能夠用命令行來解決問題。這裏用到一個超級命令 for

我來寫個範例,你們就知道該怎麼處理了。

      for /R %f in (*.cpp;*.c;*.h) do astyle --style=ansi "%f"

該命令在當前目錄中尋找文件名匹配模式 *.cpp;*.c;*.h 的全部文件(不一樣模式可用英文逗號隔開),而且對每一個文件%f執行操做:

      astyle --style=ansi "%f"

好了,本教程能夠結束了。但願對你有所幫助。

 

使用astyle格式化代碼

astyle是一款代碼格式化工具,它的下載地址是:http://sourceforge.net/projects/astyle

一。基本命令

astyle --style=ansi main.cs (使用ansi風格格式化main.cs)

瞭解上面的命令就能夠格式化一個文件了,下面來看如何格式化目錄下的文件

二。格式化目錄

for /R %f in (*.cpp;*.cs;) do astyle --style=ansi "%f" (使用ansi風格格式下當前目錄下的全部cpp,cs文件,注意:批處理文件時,"%f" 要改成"%%f")

三。參數說明:

(1) -f
在兩行不相關的代碼之間插入空行,如import和public class之間、public class和成員之間等;
(2) -p
在操做符兩邊插入空格,如=、+、-等。
如:int a=10*60;
處理後變成int a = 10 * 60;
(3) -P
在括號兩邊插入空格。另,-d只在括號外面插入空格,-D只在裏面插入。
如:System.out.println(1);
處理後變成System.out.println( 1 );
(4) -U
移除括號兩邊沒必要要的空格。
如:System.out.println( 1 );
處理後變成System.out.println(1);
(5) -V
將Tab替換爲空格。

(6)-N

本條主要針對namespaces,若是沒有此參數,效果以下:

namespace foospace
{
class Foo
{
    public:
        Foo();
        virtual ~Foo();
};
}
有此參數就會變成這樣:

namespace foospace
{
    class Foo
    {
        public:
            Foo();
            virtual ~Foo();
    };
}

(7) -n

不生成備份文件,即默認的 .orig文件。

C#的默認方式爲第二種,因此若是你是用來格式化C#代碼的話,這個參數就有用了。

四:加入到VS2008,VS2005中

估計加入到VS2005中也是同樣,不過我這裏沒有VS2005,就說一下VS2008的作法。

工具——>外部工具——>添加

標題:astyle

命令:AStyle.exe (填好astyle.exe的路徑)

參數:--style=allman -N $(ItemDir)$(ItemFileName)$(ItemExt)

初始目錄:$(TargetDir)

勾上「使用初始目錄」

點擊肯定完成。之後就能夠在工具菜單中找到「astyle「這一項了,點擊它,就能夠對當前文件進行格式化操做。

五:加入到VS6中

Tools——>Customize——>Tools

標題:astyle

命令:AStyle.exe (填好astyle.exe的路徑)

參數:--style=ansi -s4 --suffix=.orig $(FileName)$(FileExt)

初始目錄:$(FileDir)

勾上「Using Output Window」

點擊肯定完成。之後就能夠在工具菜單中找到「astyle「這一項了,點擊它,就能夠對當前文件進行格式化操做。

六:加入到Ultraedit和UltraStudio

高級-->工具配置——>外部工具——>添加

命令:AStyle.exe -v --style=ansi -s4 --suffix=.orig "%f"(填好astyle.exe的路徑)

Optiones:選擇 Windows program和Save Active File.

Output: 選擇output to list box,show dos box 和no replace。

點擊肯定完成。之後就能夠在工具菜單中找到「astyle「這一項了,點擊它,就能夠對當前文件進行格式化操做。

七:加入到Source insight

Options-->Custom Command-->Add

Command:astyle

Run "astyle.exe" --style=ansi --pad=oper --unpad=paren -s4 --suffix=.orig %f(填好astyle.exe的路徑)

Output:不選.

Control: 選擇pause when done和exit to window.

source links in output:file, then line

-->menu

add to work menu.

點擊肯定完成。之後就能夠在Work菜單中找到「astyle「這一項了,點擊它,就能夠對當前文件進行格式化操做。

八:控制檯目錄批處理(Astyle.bat)

REM bygreencn@gmail.com

REM 批量將本目錄中的全部C++文件用Astyle進行代碼美化操做

REM 2009-01-05

REM 設置Astyle命令位置和參數

@echo off

set astyle="astyle.exe"

REM 循環遍歷目錄

for /r . %%a in (*.cpp;*.c) do %astyle% --style=ansi --pad=oper --unpad=paren -s4 -n "%%a"

for /r . %%a in (*.hpp;*.h) do %astyle% --style=ansi --pad=oper --unpad=paren -s4 -n "%%a"

REM 刪除全部的astyle生成文件

for /r . %%a in (*.orig) do del "%%a"

pause

 

 

爲UltraEdit添加astyle按鈕

打開ultraedit,高級->工具配置

在命令行填寫:(注意修改ultraedit的安裝路徑)
D:\UltraEdit-32\GNU\astyle.exe --style=ansi  "%f"  "%f"

工做目錄填寫:%P

選項不改

輸出那裏把捕獲輸出去掉就能夠了。--style=ansi 是astyle的命令,"%f" "%f"是ultraedit的參數。


 

點擊開大圖

 

 

Tips:

能夠簡單地安裝bin文件的astyle程序到cygwin系統

eg: tar xjvf astyle-2.02-1.tar.bz2  -C /    (默認以根目錄做爲跟路徑打包,因此解壓縮要-C /)

 

 

 

或者在Cygwin中用cygport 方式安裝src的astyle, astyle-2.02-1-src.tar.bz2

1 經過cygwin release的site下載安裝包

http://ftp.ntu.edu.tw/ftp/cygwin/release/astyle/

http://www.cise.ufl.edu/mirrors/cygwin/release/astyle/

2 下載後放到用戶目錄下解壓縮

tar xjvf astyle-2.02.1-1-src.tar.bz2 ( j 表示文件爲bzip2的壓縮文件, x表示解壓縮)

繼續解壓縮出來的.tar.gz

3 查看cygport文件能夠看到會在src的build/gcc目錄下cygmake,  而且將astyle.exe放在/user/bin下面

4  查看vim astyle-2.02.1-1.cygwin.patch,可知如今src已經解壓縮

   只須要cygport ./astyle-2.02.1-X.cygport all 便可

+Build instructions:
 23 +    unpack astyle-2.02.1-X-src.tar.bz2
 24 +        if you use setup to install this src package, it will be unpacked
 25 +        under /usr/src automatically
 26 +    cd /usr/src
 27 +    cygport ./astyle-2.02.1-X.cygport all
 28 +
 29 +This will create:
 30 +    /usr/src/astyle-2.02.1-X-src.tar.bz2
 31 +    /usr/src/astyle-2.02.1-X.tar.bz2
 32 +
 33 +Or use 'cygport ./astyle-2.02.1-X.cygport prep' to get the source

 

5 cygport ./astyle-2.02.1-X.cygport all

 

 

Bonus:

常規的Cygwin的resource pagage 管理工具cygport 安裝軟件的使用方法

     a.確保本地有cygport,若是沒有的話下載二進制包,解壓縮到相應目錄

       eg: tar xjvf cygport-0.10.9-1.tar.bz2  -C /

     b.經過下面的網址下載想要的軟件包
      http://mirrors.xmission.com/cygwin/release/      c.解壓後應該會有一個後綴名是.cygport的的文件。        運行        cygport <文件名>.cygport all

相關文章
相關標籤/搜索