我正在尝试使用astyle作为我在 Vim 中的代码格式化程序。但是,我似乎无法找到如何告诉 vim 哪些选项用于 astyle。
以下是在我的 vimrc 中:
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\
如果在命令行模式下没有给出任何选项,astyle 将尝试查找名为 .astyle的选项文件。但是,这似乎在这里不起作用。(即:当我在 vim 中格式化时:gqG
结果与我从命令行调用 astyle 完全不同!)这是我的 .astyle 选项文件:
--style=allman
--mode=c
--attach-classes # -xc
--attach-closing-while # -xV
--indent-classes # -C
--keep-one-line-blocks # -O
--keep-one-line-statements # -o
--align-pointer=name # -k3
所以我试着简单地在我的 vimrc 中指定选项,就像在这个答案中一样:
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\ --style=allman --mode=c -xc -xV -C -O -o -k3
完全保存、获取、重新加载 vim:没有变化。这些选项似乎没有生效。当我格式化gggqG
结果仍然不是我的选项所要求的......谁能明白为什么这不起作用?
(注意:我希望能够使用格式化gq
,我不介意每次都重新格式化整个文件,不像这个问题)
编辑:在一些愚蠢的错误之后,我已经按照@romainl 评论中的建议避开了所有空格。但是似乎有一个来自 vim 的错误,我无法解释:
/bin/bash: -c: line 1: syntax error: unexpected end of file
shell returned 1
E485: Can't read file /tmp/vHXZmnp/3