我正在为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