gpt4 book ai didi

Vim autocmd(保存文件、运行代码格式化程序、重新加载文件)

转载 作者:行者123 更新时间:2023-12-04 15:25:42 34 4
gpt4 key购买 nike

我想集成源代码格式化程序Uncrustify与 Vim。以下两个选项中的任何一个就足够了。

  • 格式化我当前正在编辑的代码(即当按下 gq 时)。
  • 保存文件时格式化代码,然后将格式化的文件重新加载到当前 Vim 窗口中。

  • 选项 1 更可取。我试过
    set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup

    即我用命令行选项调用 Uncrustify。
    这不起作用。 Vi 给出了 E518: Unknown option: ~/misc/uncrustify.cfg错误。

    对于选项 2,我在 vimrc 文件中尝试了以下操作
    autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>

    文件在保存后被格式化,但我必须手动将文件重新加载到 Vim 中。

    最佳答案

    您是否尝试过转义空格:
    :set formatprg=uncrustify\ -c\ ~/misc/uncrustify.cfg\ --no-backup
    更新
    uncrustify将“Parsing: 170 bytes ...”消息打印到stderr,因此我们需要将其重定向到/dev/null :
    :set formatprg=uncrustify\ -c\ ~/misc/uncrustify.cfg\ -l\ CPP\ --no-backup\ 2>/dev/nullgq对行进行操作,因此您可以在可视模式下选择必要的行并执行 gq .例如,如果要重新格式化整个文件,请执行 ggVGgq .

    更多信息请访问 :help gq

    关于Vim autocmd(保存文件、运行代码格式化程序、重新加载文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782929/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com