linux下使用indent整理代码

indent是linux下一个能力极强的代码整理软件,使用它可以轻松的写出风格十分精良的代码。查看/usr/src/linux-headers-<版本>/scripts/Lindent文件 ,可以看到一行代码:

indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1

这一行就是linux内核使用indent整理代码的格式,使用这条命令就可以实现风格十分良好的C或C++代码。其中-l80是每一行最多80个字母,超出会拆行,如果不喜欢可以使用更长的行字数。

使用的indent参数值含义 :
--blank-lines-after-declarations  bad  变量声明后加空行  
--blank-lines-after-procedures  bap  函数结束后加空行  
--blank-lines-before-block-comments  bbb  块注释前加空行  
--break-before-boolean-operator  bbo  较长的行,在逻辑运算符前分行  
--blank-lines-after-commas  nbc  变量声明中,逗号分隔的变量不分行  
--braces-after-if-line  bl  "if"和"{"分做两行  
--brace-indent 0  bli0  "{"不继续缩进  
--braces-after-struct-decl-line  bls  定义结构,"struct"和"{"分行  
--comment-indentationn  c33  语句后注释开始于行33  
--declaration-comment-columnn  cd33  变量声明后注释开始于行33  
--comment-delimiters-on-blank-lines  ncdb  不将单行注释变为块注释  
--cuddle-do-while  ncdw  "do --- while"的"while"和其前面的"}"另起一行  
--cuddle-else  nce  "else"和其前面的"}"另起一行  
--case-indentation 0  cli0  switch中的case语句所进0个空格  
--else-endif-columnn  cp33  #else, #endif后面的注释开始于行33  
--space-after-cast  cs  在类型转换后面加空格  
--line-comments-indentation n  d0  单行注释(不从1列开始的),不向左缩进  
--break-function-decl-args  nbfda  关闭:函数的参数一个一行  
--declaration-indentationn  di2  变量声明,变量开始于2行,即不必对齐  
--format-first-column-comments  nfc1  不格式化起于第一行的注释  
--format-all-comments  nfca  不开启全部格式化注释的开关  
--honour-newlines  hnl  Prefer to break long lines at the position of newlines in the input.  
--indent-leveln  i4  设置缩进多少字符,如果为tab的整数倍,用tab来缩进,否则用空格填充。  
--parameter-indentationn  ip5  旧风格的函数定义中参数说明缩进5个空格  
--line-length 75  l75  非注释行最长75  
--continue-at-parentheses  lp  续行从上一行出现的括号开始  
--space-after-procedure-calls  pcs  函数和"("之间插入一个空格  
--space-after-parentheses  nprs  在"("后")"前不插入空格  
--procnames-start-lines  psl  将函数名和返回类型放在两行定义  
--space-after-for  saf  for后面有空格  
--space-after-if  sai  if后面有空格  
--space-after-while  saw  while后面有空格  
--start-left-side-of-comments  nsc  不在生成的块注释中加*  
--swallow-optional-blank-lines  nsob  不去掉可添加的空行  
--space-special-semicolon  nss  一行的for或while语句,在";"前不加空。  
--tab-size  ts4  一个tab为4个空格(要能整除"-in")  
--use-tabs  ut  使用tab来缩进

时间: 2024-10-05 10:23:25

linux下使用indent整理代码的相关文章

Linux下二进制包和源代码包的区分

主要提供三种格式的mysql包:rpm格式.二进制格式.源码格式:(tar打包,gz压缩) rpm格式: libjpeg-devel-6b-33.x86_64.rpm       #rpm格式很好区分, 二进制包: mysql-3.23.58-pc-linux-i686.tar.gz   #二进制格式的包名字很长,有版本号.适应平台.适应的硬件类型等,格式:mysql-<版本>-<OS>-tar.gz 源码包:    php-5.2.14.tar.gz              

怎样在Windows和Linux下写相同的代码

目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和Linux两强鼎立的格局,怎样能够使得开发的软件保持最大的可移植性就成了一个很重要的问题.小弟经过一段时间的摸索,找到了这个问题的圆满解答. 在Linux下,所有的开发工具和库都属于自由软件,可以免费获得并且功能强大.如果这些工具和库都有相应的Windows版,那么我们就能够在Windows和Linu

Linux下二进制包和源代码包

主要提供三种格式的mysql包:rpm格式.二进制格式.源码格式:(tar打包,gz压缩) rpm格式: libjpeg-devel-6b-33.x86_64.rpm       #rpm格式很好区分, 二进制包: mysql-3.23.58-pc-linux-i686.tar.gz   #二进制格式的包名字很长,有版本号.适应平台.适应的硬件类型等,格式:mysql-<版本>-<OS>-tar.gz 源码包:    php-5.2.14.tar.gz              

Linux下的快捷键整理

2019-10-26      00:37:25 今天上网整理了相关资料,希望对大家有用: 1.关于终端的快捷键:  Tab:tab键是比较常用的一个快捷键,它的作用是补全文件名或者路径.举例来说,输入”cd /ho”在按一下tab键,终端里就会显示”cd /home”了.如果您的文件夹下,有两个名字开头部分相同的文件,比如有”picture001.bmp”和”picture002.bmp”两个文 件,输入”rm pic”以后按下tab键,就会补全成”rm picture”,您可以接着输入剩下的

linux下gcc.gdb整理

gcc 常用选项 -c 只编译不链接,生成目标文件".o" -S 只编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 将file文件指定为输出文件 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本 -I dir 在头文件的搜索路径列表中添加dir目录 gcc库选项列表 -static 进行静态编译,即链接静态库,禁止使用动态库 -shared 1.可以生成动态库文件 2.进行动态编译,尽可能地链接动态库,只有当没

linux下,简单一行代码提高脚本的健壮性

前言 新来的美女同事,拿她写的脚本向我请教时,我证实了程序猿经常说的一句话:OMG,这么狗屎的代码居然是我写的!!! 问题描述: 在linux/unix写脚本时,我大多习惯在第一行加上(或许还有一大班跟我一样习惯的人): #!/usr/bin/bash 或者 #!/usr/bin/perl 或者 #!/usr/bin/python…………………… 用于操作系统执行这个脚本的时候,调用/usr/bin下的bash/perl/python解释器. 但是,这时存在两个小小问题: 1.本机的bash/p

linux下svn的常用代码【转】

转自:http://www.2cto.com/os/201205/130192.html 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3.将改动的文件提

linux下DMA驱动测试代码

DMA传输可以是内存到内存.内存到外设和外设到内存.这里的代码通过dma驱动实现了内存到内存的数据传输. /* Function description:When we call dmatest_read(),it will transmit src memory data to dst memory,then print dst memory data by dma_callback_func(void) function. */ #include<linux/module.h> #incl

linux下让irb实现代码自己主动补全的功能

我不知道其它系统上irb是否有此功能,可是在ubuntu上ruby2.1.2自带的irb默认是没有代码自己主动补全功能的,这多少让人认为有所不便.事实上加上也非常easy,就是在irb里载入一个模块:require 'irb/completion' ,可是我们不可能每次都手动敲着一行代码,KISS和DRY哪去了? 简单的一劳永逸的方法是在~/.irbrc里加入irb执行时须要执行的代码就可以.你要问我怎么知道.irbrc文件路径的,你能够通过IRB.rc_file看到.网上还有更高级的自己主动补