【发布时间】:2026-01-08 07:10:01
【问题描述】:
在 VIM 中,当我键入 gg=G 以自动缩进整个代码时,除了具有以下结构的行之外,所有内容都会正确缩进:
$my_arr = array(
'a' => 1,
'b' => 2,
)
我已将 shiftwidth 和 tabstop 设置为 2,但它会将数组元素缩进 4 个空格。为什么?
【问题讨论】:
-
文件类型、缩进设置(
autoindent、smartindent、indentexpr)、Vim 版本? -
filetype = php/ vim version = 7.3/ smartindent 和 autoindent 已设置
-
试试 :set equalprg?查看点击 = 时实际运行的内容。如果这不是空白,您可能需要配置/更改该程序。
-
这就是 vim 缩进下一行的未完成语句的方式。如果你有 a = 在一行和 b;在下一个它将以相同的方式缩进。尝试在
:h indent.txt中搜索如何更改。 -
cinoptions设置了吗?仅使用您提到的设置,我无法重现此行为。