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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用indent格式化代码

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用indent格式化代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是一款 Linux 上的工具。下載 indent 省略。

例如要把 xxx.c 格式化,我習慣用
indent -npro -kr -i4 -ts4 -sob -l80 -ss -ncs -cp1 -br -nce -nut xxx.c -o xxx1.c

查看
/usr/src/linux-headers-<版本>/scripts/Lindent
文件 ,可以看到一行代碼:

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

這一行就是 linux 內核使用 indent 工具整理代碼的格式。

我習慣再加上 -br -nce -nut

這些參數都是什么意思呢?

選項說明
-npro不要讀取 indent 的配置文件:.indent.pro
-kr指定使用 Kernighan&Ritchie 的格式??梢該Q為 -orig,BSD風格
-i8設置縮排的格數為 8,可以修改
-ts8設置 tab 為 8 個空格,可以修改
-sob刪除多余的空白行
-l80代碼每行長度超過 80 換行(對于非注釋行)
-ss若 for 或者 while 區段只有一行時,在分號前加上空格
-ncsno-space-after-casts,不要在 cast 之后空一格
-cp1#else、#endif 后面的注釋開始于列 1(前面空一個格)
-nut不使用 tab 縮進,即 tab 用空格替換
-brif、while 等后面的括號和 if、while 在同一行。Put braces on line with if, etc.

-nce 和 -ce 有啥不一樣呢?

-ce, --cuddle-else, Cuddle(擁抱的意思) else and preceding ‘}’.

舉個例子,如果用 -br -ce,得到的格式是

if (x > 0) {x--;} else {fprintf (stderr, "...something wrong?\n");}

看到了嗎? else 被 } 和 { 包圍

如果用 -br -nce,得到的格式是

if (x > 0) {x--;} else {fprintf (stderr, "...something wrong?\n");}

其實就是 else 另起一行。

The Kernighan & Ritchie style is used throughout their well-known book “The C Programming Language”. It is enabled with the ‘-kr’option. The Kernighan & Ritchie style corresponds to the following set of options:

-nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -nprs -npsl -saf -sai -saw -nsc -nsob -nss

具體就不一一解釋了。用 man 命令查看吧。

如果你覺得每次都輸入那么一大串太麻煩了,那么可以把你的定制化參數保存到 ~/.indent.pro
里面寫上
-kr -i4 -ts4 -sob -l80 -ss -ncs -cp1 -br -nce -nut
這樣,直接使用

indent xxx.c -o xxx1.c

就可以了

總結

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

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