时间:2021-07-01 10:21:17 帮助过:28人阅读
gg=G 格式化代码指令。VIM有个 gg=G 格式化代码指令。
如何自定义这个自定义规则呢?
这个问题有点大,全说清楚不太现实,说一些基本概念以供参考:
首先对于你想知道的事情,gg=G 里只有 = 才是关键,剩下的只是帮助 = 确定作用
范围而已。
= 的工作机制是这样的:
equalprg,你应该看一下关于它的文档,另外formatprg 和 formatexpr 参数(对应的是 gq 而不是 =,即格式化equalprg 默认值是空,如果你没有合适的外部缩进工具,Vim 就会使用内置的indent() 函数来干活儿——indentexpr。刚才说过若 equalprg 未设置,= 会使用indentexpr 的话,则会取如果你对 equalprg 和 indentexpr 傻傻分不清楚,很简单:前者只影响 = 的效果
而后者决定所有的缩进功能,比如说我们除了可以使用 = 调整缩进之外,在 INPUT 模
式下换行 Vim 也会自动调整缩进。所以 indentexpr 的影响范围更大,也是用来自定义
缩进规则的主要手段(同时还有一个 indentkeys 也很有用,这俩的文档更要好好看)。