首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以用VIM格式化C++代码吗?

可以用VIM格式化C++代码吗?
EN

Stack Overflow用户
提问于 2010-03-24 18:15:36
回答 9查看 33.2K关注 0票数 34

我对VIM还是个新手。我得到了一些源代码,这是一团糟。乍一看,我希望至少能对代码有一个清晰而有条理的了解,所以我想让它正确地格式化,我的意思是根据函数的深度缩进。

我想知道是否可以使用VIM来完成这项工作,除此之外,您还可以推荐其他哪些命令行工具来实现这一点。

谢谢

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-03-24 18:44:20

虽然vim是一个真正的瑞士刀,但我仍然更喜欢外部工具来做一些工作。这种方法有时比使用内置的等价物更直观、更容易记忆。

在缩进的情况下,我通过astyle过滤整个文件缓冲区。在几分钟内掌握astyle参数要容易得多,特别是如果你不是vim专家的话。此外,astyle在微调输出方面提供了更多的灵活性。

首先安装astyle:

# apt-get install astyle

然后在vim中:

:%!astyle (简单大小写--默认模式为C/C++)

:%!astyle --mode=c --style=ansi -s2 (ansi C++样式,每个缩进级别使用两个空格)

:1,40!astyle --mode=c --style=ansi (ansi C++样式,仅过滤第1-40行)

票数 65
EN

Stack Overflow用户

发布于 2010-03-24 18:18:25

您可以执行以下操作:

代码语言:javascript
复制
gg=G
票数 33
EN

Stack Overflow用户

发布于 2015-01-08 16:22:20

我强烈推荐如今的clang格式。一旦安装了clang-format,它就可以简单地将clang-format集成到Vim中:

http://clang.llvm.org/docs/ClangFormat.html#vim-integration

它是唯一一个真正理解你的C++代码的代码美化器,美化代码更像一个人而不是一个机器是非常聪明的。例如:

代码语言:javascript
复制
void TestFunction(int argument1, int argument2,
                  int argument3);
void TestFunctionVeryLongName(int argument1,
                              int argument2,
                              int argument3);
void TestFunctionWithRidiculouslyLongName(
    int argument1, int argument2, int argument3);
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2506776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档