c – Google c风格设置为gnu缩进?

我正在为Emacs( google-c-style.el)和Vim( google.vim)使用google c indent风格.

但是,由于我有一些现有的代码不是这种风格,我希望我可以改变它.我发现有一个名为GNU indent的工具可以自动执行这样的操作,它在this page上提供了一些常见的样式设置,但是没有针对Google c缩进的样式. SO还有等同的吗?

(我尝试了Linux和Berkley风格,觉得对我来说不太满意)

解决方法

谷歌编码风格的简要介绍表明,它主要是K& R编码风格,除了2空格缩进(包括案例语句),80列和没有选项卡.因此,以下选项应该完成:
-kr -ci2 -cli2 -i2 -l80 -nut

从那开始您可能需要调整生成代码. C支持,特别是缩进是弱的.

传说:

> -kr:K& R风格
> -ci2:连续缩进,多行代码语句第一行后面的行缩进为2个空格
> -cli2:case标签缩进,case标签从交换机缩进2个空格
> -i2:缩进,2个空格
> -l80:长度,80列
-nut:没有标签

作为替代方案,您可以考虑使用代码executing emacs in batch mode to apply indentation.简述:

创建一个名为emacs-format-file的文件,内容如下:

(defun emacs-format-function ()
   "Format the whole buffer."
   (c-set-style "Google")
   (indent-region (point-min) (point-max) nil)
   (untabify (point-min) (point-max))
   (save-buffer))

从shell执行以下命令:

emacs -batch your_source_file.c \
    -l emacs-format-file -f emacs-format-function

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...