indent 可依指定風格自動排版 C/C++ 原始碼,統一團隊編碼風格、提升可讀性。本文整理常用參數分類表與實戰範例。
indent [選項] 來源檔 [ -o 目標檔 ]
| 類別 | 參數 | 說明 |
|---|---|---|
| 空白行控制 | -bad, --blank-lines-after-declarations | 宣告區塊後加空行 |
-bap, --blank-lines-after-procedures | 函數結束後加空行 | |
-bbb, --blank-lines-after-block-comments | 區塊註解後加空行 | |
-bc, --blank-lines-after-commas | 宣告中逗號後換行 | |
| 大括號風格 | -bl, --braces-after-if-line | if (...)\n{ 大括號另起一行 |
-br, --braces-on-if-line | if (...) { 大括號同行 | |
-bliN, --brace-indentN | 大括號縮排 N 格 | |
| 縮排控制 | -iN, --indent-levelN | 基本縮排 N 格(預設 8) |
-ciN, --continuation-indentationN | 續行縮排 N 格 | |
-ipN, --parameter-indentationN | 函數參數縮排 N 格 | |
| 註解對齊 | -cN, --comment-indentationN | 行尾註解靠右欄位 N |
-cdN, --declaration-comment-columnN | 宣告後註解靠右欄位 N | |
-cpN, --else-endif-columnN | #else/#endif 註解欄位 N | |
| 其他常用 | -gnu | GNU 風格(預設) |
-kr | K&R 風格 | |
-linux | Linux 核心風格 | |
-nut | 不使用 Tab(全空白) | |
-v, --verbose | 顯示處理進度 |
# GNU 風格、4 格縮排、大括號同行、行尾註解靠第 60 欄
indent -gnu -i4 -br -c60 -o formatted.c source.c
# Linux 核心風格(Tab 縮排、大括號另行)
indent -linux -o kernel_style.c driver.c
:set equalprg=indent\ -gnu\ -i4\ -br,視覺模式按 = 格式化。indent -gnu -i4 -br $FILE 強制統一風格。