1. 概述
- clang-format 用于格式化代码,其中自带的排本格式主要有:
LLVM、Google、Chromium、Mozilla、WebKit
2. 命令
- 安装命令:
sudo apt install clang-format
- 操作命令:
clang-format [options] [<file> ...]
- 使用.clang-format实现自定义格式化,将自定义格式化保存为.clang-format文件格式,并用
-style=file
参数进行指定;即clang-format -i -style=file
; - 使用已有的格式化创建自定义格式化.clang-format文件,
clang-format -style=LLVM -dump-config > .clang-format
;# 格式化的结果打到stdout(终端上) clang-format -style=file main.cc # 直接修改到文件 clang-format -style=file -i main.cc
3. Linux下使用clang-format
xargs
命令详解,extended arguments是给命令传递参数的一个过滤器,是组合多个命令的工具,能够捕获一个命令的输出,然后传递给另外一个命令;
- xargs默认的命令是echo,即通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs处理,换行和空白将被空格取代;
- xargs 可以将管道或标准输入数据转换成命令行参数,也能够从文件的输出中读取数据;
- xargs命令一般与管道一起使用,
some command | xargs -item command
- xargs命令实战:
#!/bin/bash
#print all args sk.sh
echo $*
# cat args.txt
aaa
bbb
ccc
# xargs的-I选项,使用-I指定一个替换字符串{},该字符串在xargs扩展时将被替换掉,当-I与xargs结合使用时,每一个参数命令都将被执行一次。
# cat arg.txt | xargs -I {} ./sk.sh -p {} -l
-p aaa -l
-p bbb -l
-p ccc -l
# 复制所有图片文件到/data/images目录下:
ls *.jpg | xargs -n1 -I {} cp {} /data/images
# xargs结合find使用
find . -type f -name "*.log" -print0 | xargs -0 rm -f
# xargs结合find命令实现clang-format
find . -iname '*.h' -o -iname '*.c' | xargs clang-format -i -style=file