代码之家  ›  专栏  ›  技术社区  ›  Leonard

如何在使用vim的bufferread上智能地运行indent

vim c
  •  0
  • Leonard  · 技术社区  · 15 年前

    我想对我在vim中打开的每个.c和.h文件运行indent。我已经研究过设置equalprg,但我宁愿在打开缓冲区时为自己设置,所以我尝试了:

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

    如果文件没有语法错误,这就可以很好地工作,但是如果我缺少右大括号,就会将缩进中的错误消息发送到文件中。我以前没用过插件。我写一个ftplugin更好吗?我不介意因错误而沉默地失败,但在这种情况下,文件应该保持原样。任何提示都非常感谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Benj    15 年前

    如果您想使用GNU缩进。听起来你想要:

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

    (也未测试):-)

        2
  •  0
  •   Aaron    15 年前

    如何(未测试):

    autocmd BufReadPost *.[ch] gg=G