【转】VS2008中的自定义格式化代码
来源:互联网 发布:刘邦知乎 编辑:程序博客网 时间:2024/06/05 06:04
原文:http://blog.csdn.net/memory_xj/archive/2008/09/26/2983093.aspx
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 [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;
}
}
{
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;
}
}
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;
}
}
{
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;
}
}
{
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;
}
}
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;
}
}
}
(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
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
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"
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. 其他比较有用的开关:(均在--style之前写)
(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替换为空格。
(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"
0
上一篇:C++开发工具的常用插件
下一篇:【转】将Visual Studio武装到底
相关热门文章
- 向自定义控件传递事件...
- 【原创】MySQL 5.7 SYS系统SCH...
- 如何修改android aapt源码实现...
- DB2备份还原重定向还原-非自...
- C#自定义调试启动项
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- sql relay的c++接口
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- 【转】VS2008中的自定义格式化代码
- vs2008格式化代码
- VS2008 格式化代码快捷键
- vs2008格式化代码
- VS2008格式化代码
- VS2008添加AStyle代码格式化工具
- VS2008里的代码如何格式化?
- NetBeans中的格式化代码
- VS2005中的代码格式化
- VS2005中的代码格式化
- VS2005中的代码格式化
- VS2005中的代码格式化
- VS2005中的代码格式化
- AndroidStudio设置自定义代码格式化
- Visual Studio 中的代码格式化
- php自定义的格式化时间示例代码
- eclipse格式化自定义代码样式风格
- Sublime Text 格式化代码快捷键自定义
- 一批成功的美国50岁的人被采访:什么是你希望你25岁时有过来人告诉你的话。最多的三个回答
- 显示器恢复出厂设置 详细步骤
- 【转】精通IntelliJ Idea之热部署
- 抽烟的注意事项
- C++开发工具的常用插件
- 【转】VS2008中的自定义格式化代码
- android 程序启动界面的短暂黑屏解决办法
- 【转】将Visual Studio武装到底
- java内存垃圾回收机制
- 【转】球形思维
- MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
- [原]Visual Studio 2008集成C++代码格式化插件
- 【慕课笔记】U1 类和对象 第3节 如何使用JAVA中的对象
- 【转】C++ 内存池
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
九尾狐偷开摄像头软件破解版
我的九尾狐女友
九尾狐魔后涂音
九尾狐姐姐传
我九尾狐女友
九尾狐app
九尾狐m
传说的故乡九尾狐
九尾狐纹身
九尾狐女友
九尾狐折纸
九尾狐姐姐
九尾狐纹身图片
九尾狐妃千千岁
青丘九尾狐
九尾狐状态栏彩虹电量
九尾狐韩剧
我的女友九尾狐
九尾狐哪里多
女孩纹身九尾狐图片
九尾狐的复仇
九尾狐牌
千年九尾狐
九尾狐打鱼
九尾狐图
九尾狐神
九尾狐传说
封印之书九尾狐
九尾狐下载
九尾狐阿狸
白色九尾狐
鸣人九尾狐
九尾狐兽
我的女孩是九尾狐
九尾狐尊
九尾狐的幸福
郭德刚 九尾狐
九尾狐名字
九尾狐尾巴
九尾狐网
九尾狐的传说