您的位置:首页 > 编程语言 > C语言/C++

[原]Visual Studio 2008集成C++代码格式化插件

2016-01-25 16:27 387 查看
下载地址:http://astyle.sourceforge.net/

集成到Visual Studio中(以2008为例)
1,Tool -> External Tools -> Add。
Title栏输入名字,比如:Asytled Format。若想添加快捷键,则在想要设置的字母前加&符合,例如As&ytled Format,就是以y作为快捷键。(若有添加组合快捷键,往下看。)
Command栏输入解压后的exe文件,例如:D:/asytle/asytle.exe
Arguments栏输入参数:--style=ansi --indent-cases -f -p -U -D -v -N $(ItemDir)$(ItemFileName)$(ItemExt)。
Initial directory栏输入:$(ItemDir)
最后勾选一下“Use Output Window”。以免格式化时弹出cmd窗体

Astyled比较有用的参数如下 这个也是看别人blog的(更详细见官方文档http://astyle.sourceforge.net/astyle.html
(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) --suffix=none
不生成备份文件。默认情况是每次格式化都会生成一个后缀名为.org的代码备份文件,若astyle出了什么bug导致格式乱掉,则可以通过这个文件还原。

可以参考压缩包里附带的   Documentation

设置组合快捷键:
Tools -> Options -> Environment -> Keyboard。在Show Command Containing输入:tools,再下拉找到“Tools.ExternalCommand8”。因为我之前添加Astyle Format菜单栏在VS的tools下面外部工具的第8个位置。如下图



然后在“Press shortcut keys”输入组合键,我输入的Ctrl+Alt+F,(Ctrl+Shhit+F已经被占用,当然你也可以修改原来Ctrl+Shhit+F对应的快捷键来替换,这样更符合Eclipse的操作系统)。最后点击“Assign”,OK。以后就可以使用Ctrl+Alt+F开格式化当天的C++代码。

这里有点美中不足的是,每次格式化,VS都要提醒当前文件已在外部修改是否重新载入的提示,为了让VS自动重新载入,在做下设置:Tools -> Options -> Environment -> Documents,勾选“Auto-load changes,if saved”。

至此,VS武装就绪!


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

阅读(2262) | 评论(0) | 转发(0) |

0
上一篇:【转】球形思维

下一篇:【转】C++ 内存池

相关热门文章
test123

编写安全代码——小心有符号数...

使用openssl api进行加密解密...

一段自己打印自己的c程序...

sql relay的c++接口

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: