利用indent格式化源文件的脚本
脚本一:格式化指定目录下的源文件(*.h, *.cpp...)
#!/bin/sh
# 格式化某目录下所有*.h, *.c, *.cpp, *.hh文件, 并将文件换行符转换成Linux下的格式
if [ $# -lt 1 ]; then
echo "Usage: $0 <dir>"
exit 1
else
dir=$1
fi
# format a source file(*.c, *.h, *.cpp, *.hh)
formatSrcfile()
{
dos2unix $1
indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1
rm -f "$1"~
}
# save file path to file
find $dir -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.hh' > tmp
# format every file in tmp
while read file
do
formatSrcfile $file
done < tmp
# remove tmp file
rm -f tmp
脚本二:格式化指定的文件
#!/bin/sh
# 格式化指定的文件, 并将文件换行符转换成Linux下的格式
if [ $# -lt 1 ]; then
echo "Usage: $0 file1 file2 file*.cpp ..."
exit 1
fi
# format a source file(*.c, *.h, *.cpp, *.hh)
formatSrcfile()
{
dos2unix $1
indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1
rm -f "$1"~
}
for i in $*
do
formatSrcfile $i
done
因为indent的参数很多,我这里用的格式不一定是所有人都喜欢的,所以如果不符合您的要求,请大家自己修改。
我这两个脚本都有一个bug,一直没找到解决办法,若有人解决了,还望告知下。bug如下:
就是上图左边的代码,会被格式成右边的样子,但是事实上对于左边这样的格式,我希望他能保持不变,不知如何修改indent参数呢?
另外,如果一个宏单独一行,且没有分号作结尾,他会将下一行的内容给捞上来的,哈哈!
利用indent格式化源文件的脚本相关推荐
- linux indent格式化代码
linux kernel有一个脚本Lindent,可以帮助你将自己的代码做一个好的代码风格格式化. 如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent ...
- linux indent添加,linux indent格式化代码
linux kernel有一个脚本Lindent,可以帮助你将自己的代码做一个好的代码风格格式化. 如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent ...
- TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式
TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式 目录 转换代码 转换后的结果 转换代码 python data_convert2tfr ...
- 输入法注入源码_将注入进行到底:利用Mono注入C#游戏脚本
本文作者01dTan9,首发于三叶草小组博客:http://blog.sycsec.com/ 致力于引领每一位对windows安全感兴趣的萌新,希望让萌新能够对Windows有初步的了解.笔者的文 ...
- mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本
1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...
- php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...
这几天弄的东西涉及到php利用shell脚本与Linux的交互,我们知道利用php运行脚本来访问Linux是以Apach的身份来执行的,因此它自己能够所做的事情很少的,因为没有足够的权限,这里就涉及到 ...
- python黑科技脚本_利用Python实现FGO自动战斗脚本,再也不用爆肝啦~
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 利用Python实现FGO自动战斗脚本,再也不用爆 ...
- Windows下利用**SDFormatter**格式化SD卡
树莓派3-SD卡格式化-Windows下利用SDFormatter格式化SD卡 格式化前准备 下载SDFormatter软件 下载 一张Miscro SD卡 读卡器 电脑 格式化步骤 下载软件并安装 ...
- 利用Python实现系统监控脚本
利用Python实现系统监控脚本 简介 该 Python 脚本,用于监控计算机或网络的性能和状态.该脚本可用于跟踪各种指标,例如 CPU 使用率.内存使用率.磁盘空间.网络流量和系统正常运行时间.该脚 ...
最新文章
- 凭啥Java运行环境称虚拟机 Python只能称解释器
- pyquery获取不到网页完整源代码_PyQuery 详解
- Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题
- Node.js 根本没有这样搞性能优化的?
- 5种你未必知道的JavaScript和CSS交互的方法
- VUE自学日志02-应用与组件实例
- MTK6589反向修改拼包法操作流程
- 域名排名(前100万)
- java获取手机型号
- 基于Androidstudio餐厅点餐选座系统
- linux开发板添加qt库文件_关于QT程序下载到开发板的一些步骤总结
- 小学计算机课题研究方案,小学语文课题研究方案
- phpstudy 报错Error while setting value ‘NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO‘ to ‘sql_mode‘
- 一个项目经理的经验总结_小七_新浪博客
- kafka中文文档new comsumer配置参数
- bash内置文档(ubuntu20.10)
- Flutter开发 - 对于富文本展示的方法封装
- 阿里DRDS基本原理
- Praat脚本-018 | Praat批量调整音量
- ffmpeg加字幕和自定义字体
热门文章
- 用SQL实现统计报表中的“小计”和“合计”
- 隐藏自己电脑的IP地址
- 天凉了,大家多穿衣服
- ai前沿公司_美术是AI的下一个前沿吗?
- 282. 给表达式添加运算符
- 数据挖掘—K-Means算法(Java实现)
- 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
- 开源短地址_如何在短短5分钟内完成您的第一个开源贡献
- node.js事件驱动_了解Node.js事件驱动架构
- yolo人脸检测数据集_自定义数据集上的Yolo-V5对象检测