我喜欢 c.vim 插件,但我不使用 K&R 代码风格

Posted

技术标签:

【中文标题】我喜欢 c.vim 插件,但我不使用 K&R 代码风格【英文标题】:I like c.vim plugin, but I don't use K&R code style 【发布时间】:2012-01-13 23:21:25 【问题描述】:

我写代码的时候想用ANSI C风格,但是c.vim模板里的代码风格是K&R。

我在哪里可以获得另一个模板或任何其他插件而不是 c.vim

【问题讨论】:

【参考方案1】:

你应该检查:help cinoptions-value并定义你自己的C风格。

IIRC,您需要 set cindent 以便将 cinoptions 考虑在内。

FWIW,这是我打开 C 或 h 文件时所做的:

setlocal cinoptions=0,:1s,g1s,t0,(0,=.5s
setlocal noautoindent
setlocal nosmartindent
setlocal cindent

【讨论】:

Accoding to :help C-indenting, "实际上有四种主要的缩进方法,如果启用,每一种方法都会覆盖前一种方法" - 所以看起来setlocal noautoindentsetlocal nosmartindent是不需要。【参考方案2】:

有一个很棒的程序叫做 Artistic Style 或 astyle,它为你做了一大堆代码格式化。您可以告诉它是否需要运算符周围的空格、与循环在同一行上打开大括号、如何缩进等。我在这里更详细地讨论它: Auto format C。它易于使用,但选项允许您设置多种编码样式,包括一些常用样式的预定义,例如 K&R。

基本上,一旦您在 vimrc 中设置了它,只需键入 gggqG 即可重新格式化您的文件。 (gg 到顶部,gq 开始格式化,G 一直格式化到最后。)

这无助于在编写代码时格式化,但在必须处理格式不正确的预先存在的文件或快速清理自己的代码时,它可以成为救命稻草.

【讨论】:

以上是关于我喜欢 c.vim 插件,但我不使用 K&R 代码风格的主要内容,如果未能解决你的问题,请参考以下文章

跟随机械化的链接

如何在依赖解析之前运行 Maven 插件

使用 YAML-cpp,如何识别未知密钥?

方法声明中的 Java 泛型 2 组 <K,V> 或 <T> [重复]

在 python 解释中查找列表中最常见的元素? [复制]

C++ 的 #include 子句的 Vim 自动完成