日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用indent格式化源文件的脚本

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用indent格式化源文件的脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

腳本一:格式化指定目錄下的源文件(*.h, *.cpp...)

#!/bin/sh# 格式化某目錄下所有*.h, *.c, *.cpp, *.hh文件, 并將文件換行符轉換成Linux下的格式if [ $# -lt 1 ]; thenecho "Usage: $0 <dir>"exit 1 elsedir=$1 fi# format a source file(*.c, *.h, *.cpp, *.hh) formatSrcfile() {dos2unix $1indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1rm -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 doformatSrcfile $file done < tmp# remove tmp file rm -f tmp


腳本二:格式化指定的文件

#!/bin/sh# 格式化指定的文件, 并將文件換行符轉換成Linux下的格式if [ $# -lt 1 ]; thenecho "Usage: $0 file1 file2 file*.cpp ..."exit 1 fi# format a source file(*.c, *.h, *.cpp, *.hh) formatSrcfile() {dos2unix $1indent -npro -nip -lp -npsl -npcs -i4 -ts4 -sob -l140 -ci4 -ss -nsaf -nsai -nsaw -bl -bli0 $1rm -f "$1"~ }for i in $* doformatSrcfile $i done


因為indent的參數很多,我這里用的格式不一定是所有人都喜歡的,所以如果不符合您的要求,請大家自己修改。

?

我這兩個腳本都有一個bug,一直沒找到解決辦法,若有人解決了,還望告知下。bug如下:

就是上圖左邊的代碼,會被格式成右邊的樣子,但是事實上對于左邊這樣的格式,我希望他能保持不變,不知如何修改indent參數呢?

?

另外,如果一個宏單獨一行,且沒有分號作結尾,他會將下一行的內容給撈上來的,哈哈!

?

總結

以上是生活随笔為你收集整理的利用indent格式化源文件的脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。