当我从另一个文件复制代码时,格式是混乱的,就像这样:

fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}

如何在vim中自动格式化这段代码?


当前回答

@Gavin-Freeborn在YouTube上有一个很棒的视频,可以看到这里提到的许多选项的概览和演示:

https://www.youtube.com/watch?v=tM_uIwSucPU

它涵盖了一些Vim插件以及内置功能,如=、gq和formatprg。

其他回答

我发现clang格式工作得很好。

在clang文档中有一些示例键绑定

我更喜欢在vim中使用equalprg绑定。这允许您使用G=gg或other = indent选项调用clang-format。

只需在你的。vimrc文件中放入以下内容:

autocmd FileType c,cpp setlocal equalprg=clang-format

试试下面的按键:

gg=G

解释:gg到文件的顶部,=是修复缩进的命令,G告诉它执行到文件末尾的操作。

他们的工具叫做缩进。你可以用apt-get install indent下载它,然后运行indent my_program.c。

前面已经提到了适当缩进代码的内置命令(gg=G)。如果想美化代码,就需要使用缩进等外部应用程序。因为%表示当前文件的ex模式,你可以这样使用它:

:!indent %

插件vim-autoformat允许您使用一个命令(https://github.com/vim-autoformat/vim-autoformat)格式化缓冲区(或缓冲区选择)。为此,它使用了外部格式程序,并使用了vim的缩进功能。