Astyle 快速入门,常用指令

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

原文地址:https://www.cnblogs.com/qiyuexin/p/8206510.html

时间: 2024-10-09 05:30:39

Astyle 快速入门,常用指令的相关文章

vue 快速入门、常用指令(1)

1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库之一,由尤雨溪在2014年2月发布的. 官方网站 中文:https://cn.vuejs.org/ 英文:https://vuejs.org/ 官方文档:https://cn.vuejs.org/v2/guide/ 1.2 vue.js库的基本使用 在github下载:https://github.com/vuejs/vue/releases 在官网下载地址: https://cn.vu

Docker快速入门——Docker常用命令

Docker快速入门--Docker常用命令 一.Docker命令简介 1.Docker命令简介 Docker的命令清单可以通过运行sudo docker或者sudo docker help命令查看.Docker容器技术在不断演化过程中,Docker的子命令已经达到41个,其中核心子命令(例如:run)还会有复杂的参数配置.Docker命令根据功能和使用场景可以分为4个部分. 2.Docker用户组 Docker守护进程绑定的是一个unix ?socket,而不是TCP端口,默认的属主是root

Angular JS从入门基础 mvc三层架构 常用指令

Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. 1.常用指令 AngularJS 通过指令扩展了HTML,且通过表达式绑定数据到 HTML.下面我们看一下AngularJS中的常用指令. (1).基本概念 指令:AngularJS中,通过扩展HTML的属性提供功能.所以,ng-

git/github常用指令、入门

git的基本常用指令: 1.cd:切换路径 2.mkdir:进入文件夹目录 3.pwd:显示当前目录的路径 4.git init:把当前的目录变成可以管理的git仓库,生成隐藏.git文件 5.git add 文件名:把文件添加到暂存区去 6.git commit –m "版本提交备注":提交文件 –m 后面的是注释 7.git commit -a -m "版本提交备注":此指令是5.6两个步骤的合并版,添加所有更新过的文件并提交 8.git status:查看仓库

Git快速入门和常用命令

一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global user.name "你的名字或昵称" git config --global user.email "你的邮箱" 然后在你的需要初始化版本库的文件夹中执行: git init git remote add origin <你的项目地址> //注:项目地址形式为

vue.js--60分钟快速入门

Vue.js--60分钟快速入门 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js. 本文摘自:http://www.cnblogs.com/keepfool/p/5619070.html 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM

grunt快速入门

快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本号的 Node.js 被认为是不稳定的开发版. 在安装 Grunt 前,请确保当前环境中所安装的 npm 已经是最新版本,执行 npm update -g npm 指令进行升级(在某些系统中可能需要 sudo 指令). 如果你已经安装了 Grunt,现在需要参考一些文档手册,那就请看一看 Gruntfil

nodejs快速入门

目录: 编写第一个Node.js程序: 异步式I/O和事件循环: 模块和包: 调试. 1. 编写第一个Node.js程序: Node.js 具有深厚的开源血统,它诞生于托管了许多优秀开源项目的网站—— github.和大多数开源软件一样,它由一个黑客发起,然后吸引了一小拨爱好者参与贡献代码.一开始它默默无闻,靠口口相传扩散,直到某一天被一个黑客媒体曝光,进入业界视野,随后便有一些有远见的公司提供商业支持,使其逐步发展壮大. 用 Node.js 编程是一件令人愉快的事情,因为你将开始用黑客的思维和

Markdown语法 与 Hexo常用指令

Markdown语法 与 Hexo常用指令 Markdown Hexo Markdown是一种超轻量级的标记语言,常用的标记符号不超过十个,相对于更为复杂的HTML标记语言来讲,Markdown实在简便多了,因此学习成本也不是很大.更多关于Markdown的认识,我们可以参考:认识与入门 Markdown Markdown工具 关于支持Markdown的书写工具网络上有很多推荐,这里不再一一列举,常用的有: Mou:外文世界对 MarkDown 的热衷在 Mac 上可见一斑,目前虽是免费的,但功