如何使用vim在bufferRead上智能地运行缩进

时间:2009-11-06 00:45:25

标签: c vim

我想在vim中打开的每个.c和.h文件上运行缩进。我已经看过设置equalprg,但是当我打开缓冲区时,我宁愿让它为我完成,所以我尝试了:

autocmd BufReadPost *.[ch] '[,']!indent

如果文件没有语法错误,这可以正常工作,但是如果我错过了一个右大括号,则会将缩进的错误消息发送到文件中。我之前没有做任何插件。我最好写一个ftplugin吗?我不介意错误的无声失败,但在这种情况下文件应保持原始状态。任何提示都非常赞赏。

2 个答案:

答案 0 :(得分:1)

如果你想使用GNU缩进。这听起来像你想要的东西:

autocmd BufReadPost *.[ch] silent !indent "%"
set autoread

(也未经测试): - )

答案 1 :(得分:0)

如何(未经测试):

autocmd BufReadPost *.[ch] gg=G