IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 使用indent格式化代码 -> 正文阅读

[系统运维]使用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 的格式。可以换为 -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 命令查看吧。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:28:28  更:2022-02-03 01:30:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 9:01:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码