使用vim自动命令缩进代码

时间:2017-10-24 17:35:46

标签: vim autocmd

我想使用indent linux实用程序在保存时缩进当前文件。我试过了

autocmd BufWritePre *.[ch] :!indent -kr -nut %

在我的.vimrc文件中(〜/ .vim)。

手动我尝试了那个命令

:!indent -kr -nut %

仅在提示我加载文件后才能工作,如下所示

See ":help W12" for more info.
[O]K, (L)oad File:

1 个答案:

答案 0 :(得分:1)

您不希望BufWritePre,因为它会在保存之前修改您的文件。相反,请尝试BufWritePost

autocmd BufWritePost *.[ch] !indent -kr -nut %

这仍然会要求您按Enter键,但在测试时它不会提示加载文件。如果您不想在保存后点击输入,可以将其更改为:

autocmd BufWritePost *.[ch] exec "!indent -kr -nut %" | redraw

另外,请注意我是如何从命令中删除:的。这是因为autocmd查找ex命令,因此不需要: