- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在为 Emacs ( google-c-style.el ) 和 Vim( google.vim ) 使用 google c 缩进样式。
但是因为我有一些现有的代码不是这种风格,我希望我能改变它。我发现有一个叫做 GNU indent 的工具可以自动做这样的事情,它在 this page 上提供了一些常用的样式设置。 ,但是没有适用于 Google c 的缩进样式。那么它也有等价物吗?
(我尝试了Linux和Berkley风格,感觉它们对我来说绝不是令人满意的)
最佳答案
郑重声明,对于那些对 Clang 和 LLVM 感兴趣的人,还有一个替代解决方案。
clang-format绝对可以帮助轻松高效地格式化现有源代码。它具有对 5 种格式的显式内置支持,即LLVM
(默认)、Google
、Chromium
、 Mozilla
、WebKit
。
使用 Google 风格格式化文件的最简单方法是:
clang-format -style=Google -i filename
其中-i
表示就地修改,您可以尝试不使用此选项来预览更改。
要批量格式化现有的 C/C++ 代码,我们可以简单地使用如下命令:
find . -name "*.cc" | xargs clang-format -style=Google -i
除了列出的 5 种格式外,实际上还有其他样式,如 GNU
(已添加到 revision 197138 ;很遗憾文档未同步)。
注意 clang-format 在项目中接受名为 .clang-format 或 _clang-format 的 rc 之类的文件,添加这样的配置文件的最简单方法(如在 clang-format 的官方教程页面中说)是转储现有格式的配置,例如:
clang-format -style=Google -dump-config >.clang-format
您还可以使用 BasedOnStyle
选项,因此配置文件可能如下所示:
---
BasedOnStyle: Chromium
PointerBindsToType: false
ObjCSpaceAfterProperty: true
...
使用.clang-format或_clang-format作为关键字在Github上搜索,还有其他示例;或者您可以引用 this site帮助建立一个。
还有 IDE/编辑器的集成,例如 Visual Studio(在目录 clang-format-vs 中)、Sublime、Emacs、Vim(都在目录 clang-format 中)。
另外 3 个提示:
对于Emacs 集成(clang-format.el
),我个人认为为clang-format-buffer
绑定(bind) key 比 绑定(bind) key 更好clang-format-region
.
对于Mac OSX homebrew安装,使用brew install --with-clang, --with-lld, --with-python --HEAD llvm
可以得到clang- format
支持及其集成文件位于 $(brew --cache)/llvm--clang--svn-HEAD/tools/clang-format
(奖励:甚至还有一个 git-clang-format
那里!!)。
clang-extra-tools 里面还有其他很棒的工具例如clang-modernize
(用于“自动将针对旧标准编写的 C++ 代码转换为在适当的情况下使用最新 C++ 标准的功能”),非常值得一试!
关于c++ - gnu缩进的谷歌c风格设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079851/
我正在使用 libxml2 的 xmlwriter api 编写一个 xml 文件。 当我使用记事本打开文件时,缩进不正确。 有人知道怎么解决吗? 非常感谢。 最佳答案 我在这里有点冒进,但我会说“缩
我正在尝试让这个脚本工作,但它...给我缩进错误 #!/usr/bin/env python import io myfile = open('stats.txt', 'r') dan = myfil
我使用 Emacs 有一段时间了,我真的很想念一个古老的 Geany 快捷方式 - “C-i”和“C-u”。 “C-i”缩进整个当前行(将鼠标光标保持在原处),“C-u”取消整个当前行的缩进。 我发现
如何向 UILabel 内的文本添加缩进或偏移?它需要是特定的像素大小,与字体大小无关。 最佳答案 您可以创建另一个UILabel,然后将每个标签的框架设置为一定的宽度,这样,如果您想要实现这一目标,
请帮我在 Emacs haskell-mode 中设置正确的缩进 当我尝试输入诸如 ADT 或记录之类的内容时,按 后我进入了错误的列。 ,然后按 不会切换到右边,直到我输入 |或者 ';'! d
我在 Visio 2010 中有一个项目符号列表,我试图在其中缩进二级项目符号。例如: 我希望“子项目符号”项目向右缩进,这样很明显它是一个子元素。我认为功能区上的“增加缩进”选项可以做到这一点,但这
我写了这段代码: addNums key num = add [] key num where add res a:as b:bs | a == [] = res
我在生成的 xml 文档中添加了换行符。 "\n" some text etc."\n" "\n" 这最终应该是: some text etc. 这是否可以通过 google-code-pre
使用 JTabbedPane 时,如何缩进选项卡? Swing 默认输出: ------- --------- ------ | A | | B | | C | --------
我收到这些行的缩进错误 有没有在线验证器可以帮助我? showAliveTests : (pageIndex, statusFilter) -> data= pageI
在 Python 中,当你写了 100 行代码而忘记在某个地方添加一堆循环语句时,你会怎么做? 我的意思是,如果您在某处添加一个 while 语句,您现在必须缩进它下面的所有行。这不像您可以戴上牙套并
我喜欢这样做,如 indesign 或 quark...段落缩进...图片 如何在 html 和 css 中做到这一点的正确方法 我不希望文字环绕图像...我喜欢保护整个左边的部分给图片留边距就可以了
我试过添加 10px 的内边距但没有成功。你可以看到它的一个例子lower down on this page . #menu li { float: left;
这个问题在这里已经有了答案: I'm getting an IndentationError. How do I fix it? (6 个答案) 关闭去年。 while 1 == 1:
您好,我正在尝试使用来自 C# 应用程序的收据打印机打印帐单/收据。 预期的输出是这样的: ITEM NAME QTY PRICE Banana Large Y
有没有办法在 JTextPane 中缩进一段文本? import javax.swing.*; import java.awt.*; import javax.swing.text.StyledDoc
我知道 #define 等通常从不缩进。为什么? 我目前正在编写一些代码,其中混合了#define、#ifdef、#else s、#endifs 等。所有这些通常与普通 C 代码混合在一起。 #def
我认为缩进在 YAML 中很重要。 我在 irb 中测试了以下内容: > puts({1=>[1,2,3]}.to_yaml) --- 1: - 1 - 2 - 3 => nil 我期待这样的事情:
我在带有 openmp 语句的 C++ 代码中使用 Vim。 而在我的 ~/.vimrc set ai " auto indent 我的问题:当我使用 openmp 语句(以 # 开头)时,光标会跳
我想使用 Megaparsec 解析一种基本的缩进语言。最初我使用的是 Parsec,我设法通过缩进正常工作,但现在我遇到了一些麻烦。 我一直在关注一个教程here这是我必须解析一种忽略缩进的语言的代
我是一名优秀的程序员,十分优秀!