我搜索文档的缩进,但我最终放弃了,我想缩进这样的代码:
int main(int argc, char **argv){
some code;
}
我知道缩进-kr会给你这样的大括号,但-kr样式也包括
int
main(int argc, char **argv){
some code;
}
并且在main之前的这个int给了我毛骨悚然。
任何人都可以告诉我这方面的选择吗?
答案 0 :(得分:1)
您感兴趣的特定选项是
<强>
-npsl
强>
的--dont-break-procedure-type
强>
将过程的类型放在与其名称相同的行上。<强>
-brf
强>
的--braces-on-func-def-line
强>
将括号放在函数定义行上。
根据建议,GNU indent manual描述了各种选项。
这是一个快速脚本,用于说明这些选项对基本预定义样式的影响:
#!/bin/sh
for opt in gnu linux orig kr
do
echo "** $opt"
indent -st -$opt -npsl -brf hello.c
done
和输入文件:
#include <stdio.h>
int main(int argc, char **argv) { int n; for (n = 0; n < argc; ++n) printf("arg%d=%s\n", n, argv[n]); return 0; }
和相应的输出:
** gnu
#include <stdio.h>
int main(int argc, char **argv) {
int n;
for (n = 0; n < argc; ++n)
printf("arg%d=%s\n", n, argv[n]);
return 0;
}
** linux
#include <stdio.h>
int main(int argc, char **argv) {
int n;
for (n = 0; n < argc; ++n)
printf("arg%d=%s\n", n, argv[n]);
return 0;
}
** orig
#include <stdio.h>
int main(int argc, char **argv) {
int n;
for (n = 0; n < argc; ++n)
printf("arg%d=%s\n", n, argv[n]);
return 0;
}
** kr
#include <stdio.h>
int main(int argc, char **argv) {
int n;
for (n = 0; n < argc; ++n)
printf("arg%d=%s\n", n, argv[n]);
return 0;
}
我没有看到在{
字符前压缩空格的选项。
答案 1 :(得分:0)
您可能正在寻找-npsl
选项。 -psl
(--procnames-start-lines
)选项使得定义的过程类型放在过程名称之前的行上。因此,如果指定该选项,则所有函数声明都将从以下更改:
int main(int argc, char **argv){
some code;
}
到
int
main(int argc, char **argv){
some code;
}
您可以检查是否在公共类型-psl
中加入-kr
并将其删除,如果不包括在内,您可以指定-npsl
(--dont-break-procedure-type
)和类型不会放在单独的行上。
所有选项都需要权衡。我喜欢与int main() {
在同一行上的大括号,但对于函数定义,我喜欢下一行的大括号。 e.g:
type function
{
...
}
因此,如果您具有相互排斥的偏好,则只需选择要包含大部分代码的首选项,然后调整其余部分。您可以尝试进行以下调用:
indent -i 4 -lp -ts 8 -lp -lps -br -brs -blf -ce -cdw -pcs -bs -nbc -npsl -saf -sai -saw -nut
这是一种平衡的缩进方案。