红联Linux门户
Linux帮助

Linux中整理代码工具indent的使用

发布时间:2016-03-04 10:59:27来源:linux网站作者:吴钩霜晓月

indent是一个比较不错的整理工具,即使你写了一段于内核代码风格好不相同的代码,那也没关系,用indent工具就能解决你的问题,帮你整理你的代码。indent几乎在所有的Linux发行版中几乎都可以找到。或者自己安装(ubuntu中:sudo apt-get  install indent)。


查看文件vim /usr/src/linux-headers-2.6.35-6/scripts/Lindent
就会看到:
#!/bin/sh
PARAM="-npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1"
RES=`indent --version`
V1=`echo $RES | cut -d' ' -f3 | cut -d'.' -f1`
V2=`echo $RES | cut -d' ' -f3 | cut -d'.' -f2`
V3=`echo $RES | cut -d' ' -f3 | cut -d'.' -f3`
if [ $V1 -gt 2 ]; then
PARAM="$PARAM -il0"
elif [ $V1 -eq 2 ]; then
if [ $V2 -gt 2 ]; then
PARAM="$PARAM -il0";
elif [ $V2 -eq 2 ]; then
if [ $V3 -ge 10 ]; then
PARAM="$PARAM -il0"
fi
fi
fi
indent $PARAM "$@"


其中有一行:
-npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1
这一行就是linux内核使用indent整理代码的格式。

其中-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来缩进


例如: indent -kr -i4 -ts8 -sob -l80  -ss -bs -bbb -bl -bli0 -nce -psl my_module.c 就可以整理你的代码了。


本文永久更新地址:http://www.linuxdiyf.com/linux/18611.html