如何在vim中自动格式化(不仅仅是自动缩进)?

时间:2011-10-27 09:01:30

标签: windows vim code-formatting

有没有办法让gVim Autoformat我的(c#)代码?我不只是谈论缩进,而是实际格式化。

喜欢改变

public void Program() {
    ...
}

public void Program ()
{
    ...
}

而另一种方式。无论是宏,插件还是其他东西(formatexpr?)。

我正在尝试模仿Visual Studio格式。我喜欢输入}并让一切看起来都不错。

2 个答案:

答案 0 :(得分:1)

Vim没有本地方法可以做到这一点。不过,您可能会对AStyle

many options感兴趣

astyle --help会告诉您哪些选项可用。有许多预设。

在vim中,您可以使用:%!command过滤文档,其中命令在stdin中接收当前缓冲区;当前缓冲区将替换为您的命令输出。如果命令不从stdin读取但是希望将文件名作为参数,请使用%

因此:

:%!C:\astyle\bin\astyle.exe -A1

将会这样做(如果您替换好路径)。

答案 1 :(得分:0)

命令gq格式化代码。如果您对标准格式规则(:help formatexpr)不满意,我猜您可以使用自己的代码格式化程序(通过formatprg) 要缩进C(或类似语言),您还可以阅读vim native c-indent,:help C-indenting。 cindent方法应该能够做你想要的。