一、安装Astyle

1.1 下载Astyle

下载地址:  Artistic Style download | SourceForge.net

1.2 安装Astyle

Astyle是免安装的,只需将下载下来的zip文件解压到想安装的目录即可,如: F:\software\AStyle

二、将Astyle嵌入到Source Insight 4.0

1) 点击Source Insight菜单栏Tools–>Custom Commands...

2) 点击Add...添加新的命令,在弹出对话框写入命令名如Astyle

3) 在Run输入框中添加相应的命令。

"F:\software\AStyle\bin\Astyle.exe" --style=linux -t4 -xg -p -H -Y -k3 --suffix=.bak %f

4) 给Astyle添加快捷键

4.1) 1) 点击Source Insight菜单栏Options–>Key Assignments...

4.2) 在KeyAssignment Command输入框住输入Astyle找到刚刚添加的Astyle命令,然后点击Assign New Key...,然后在键盘上输入想设置的按键,如Ctrl+Alt+F,设置好后点击OK。后面使用Ctrl+Alt+F组合键就可以快速格式化代码。

三、Astyle Linux编码风格配置

Astyle官方文档详细介绍了Astyle选项参数的使用方法,详情参考官方文档: Artistic Style。

1. 大括号风格

--style=linux / --style=knf / -A8

Linux style uses linux braces. Opening braces are broken from namespace, class, and function definitions. Also known as Kernel Normal Form (KNF) style, this is the style used in the Linux BSD kernel.

int Foo(bool isBar)
{if (isFoo) {bar();return 1;} elsereturn 0;
}

2. 缩进风格

使用制表符Tabs进行进行缩进,使用空格进行续行对齐。将每个缩进视为 # 个空格(例如 -t4 / --indent=tab=4)。 # 必须介于 2 和 20 之间。如果未设置 #,则将缩进视为 4 个空格。

--indent=tab / --indent=tab=4 / -t / -t4

with indent=tab:

void Foo() {>   if (isBar1
>   ........&& isBar2)    // indent of this line can be changed with min-conditional-indent
>   >   bar();
}

with style=linux, indent=tab=8:

void Foo()
{>       if (isBar1
>       ....&& isBar2)    // indent of this line can NOT be changed with style=linux
>       >       bar();
}

3. switch-case缩进

Linux switch和case对齐不缩进,如果要缩进使用--indent-switches / -S

4. 操作符间插入空格

--pad-oper / -p
if (foo==2)a=bar((b-c)*a,d--);

becomes:

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

5. 在运算符周围插入空格

--pad-oper / -p
if (foo==2)a=bar((b-c)*a,d--);

becomes:

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

6. 在if.for,while等条件或循环语句关键字和括号之间插入空格

--pad-header / -H
if(isFoo((a+2), b))bar(a, b);

becomes:

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

7. 指针贴近变量名

--align-pointer=name   / -k3
char* foo1;
char & foo2;
string ^s1;

becomes (with align-pointer=name):

char *foo1;
char &foo2;
string ^s1;

8. 注释和代码一起缩进

--indent-col1-comments / -Y
void Foo()\n"
{
// comment
    if (isFoo)bar();
}

becomes:

void Foo()\n"
{// commentif (isFoo)bar();
}

9. 原始文件名后缀设置

--suffix=####

将后缀 #### 而不是 '.orig' 附加到原始文件名(例如 --suffix=.bak,如果这是文件扩展名,则必须包含点 '.' ,  否则将附加后缀 到当前文件扩展名)

Astyle Linux编码风格配置相关推荐

  1. linux转换C编码风格

    在 Linux 下,比较流行的"行业"风格有 KR 的编码风格.GNU 的编码风格.Linux 内核的编码风格(基于 KR 的,缩进是 8 个空格)等,它们都可以通过 indent ...

  2. Linux 内核编码风格【转】

    原文:http://www.cnblogs.com/baochuan/archive/2013/04/08/3006615.html Linux 内核编码风格 序 像其他大型软件一样,Linux制订了 ...

  3. 一些达成共识的JavaScript编码风格约定

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

  4. Linux系统 | vim配置

    Linux系统 | vim配置 配置文件路径如下 fly@fly-vm:~$ cat /etc/vim/vimrc 或者在个人家根目录下新建.vimrc lanfeiy@msil-virtual-ma ...

  5. Linux 内核编译配置选项简介(转)

    Linux 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名 ...

  6. Linux 内核编译配置选项简介

    Linux 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名 ...

  7. 在vscode中统一vue编码风格的方法

    vetur 很多人知道,但在 vscode 下没办法格式化 .vue 里的 html, js 很是头疼,代码风格无法统一. 所以不少人直接拆分开,然后在 .vue 中引入,虽然方法很好,但这有违 .v ...

  8. JavaScript编码风格指南

    首次发表在个人博客 前言 程序语言的编码风格指南对于一个长期维护的软件而言是非常重要的;好的编程风格有助于写出质量更高.错误更少.更易于 维护的程序. 团队合作需要制定一些代码规范还有利用一些工具来强 ...

  9. Linux2.6内核 -- 编码风格(2)

          5.每行代码的长度       源代码中要尽可能的保证每行代码长度不超过80个字符,因为这样做可以使代码最适合在标准的 80 * 24 的终端上显示.事实上,并不存在一个广泛接受的标准-- ...

最新文章

  1. Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)
  2. 用bert来训练quoras question pairs的代码仓
  3. 学好python能干嘛-学会Python后都能做什么?网友们的回答简直不要太厉害
  4. 给新手项目经理的12条建议
  5. boost::hana::insert用法的测试程序
  6. python中grid函数_Python-Numpy模块Meshgrid函数
  7. embedding亦福亦祸?XGBoost与LightGBM的新机遇
  8. 从无到有整合SpringMVC-MyBatis项目(2):搭建SpringMVC项目
  9. 你需要知道的基础算法知识——STL和基础数据结构(一)
  10. liquibase mysql_Liquibase MySQL:语法错误附近'????????????????'
  11. disruptor:CAS实现高效(伪)无锁阻塞队列实践
  12. 为何MAC的JDK/JRE大小这么小?
  13. JavaScript入门(介绍及入门编程)
  14. 联想 缺少计算机所需的介质驱动程序,u盘安装win10显示缺少介质驱动最佳解决方法...
  15. CSU 1457 Boggle (字典树+DFS)
  16. 就业面试的时候,hr会不会去确定程序员的学历?
  17. 辐射度算法(radiosity)原理
  18. “9W+引用”牛文教你2022年肿瘤到底该研究点啥?(第一期)
  19. 【数学分析笔记02】最大数和最小数
  20. 1秒变大神,学会这个PPT技巧,让你的PPT比别人好看30倍!

热门文章

  1. 干货! 快速上手typescript的学习笔记 (对比JS的新特性,环境搭建,webpack配置,ts编译配置)
  2. 【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台学习笔记(3.16-3.20)
  3. OpenCV:模板匹配
  4. 什么是站群?深度解析站群概念
  5. Web前端(更新中)
  6. IEDA跑若依后台跑不出来
  7. [开源工具]Win10-87键盘如何使用数字小键盘功能?
  8. html js 数组定义,js 中数组对象的定义赋值 以及方法
  9. python学什么教学_python零基础教学之列表教学
  10. 企业邮箱登录入口在哪儿?