如果您启用了文件类型支持,则当您加载特定类型的文件(如JavaScript)并且该文件包含多个设置时,Vim会加载一个文件类型插件。对于JavaScript,其中一个设置是indentexpr,它是一个被调用来自动提供正确缩进的函数。

似乎在这种情况下,它不会自动处理这种情况,可能是因为在代码中没有人考虑过这种情况。Vim本身并不能理解JavaScript,所以Vimscript必须尽其所能。

此外,也有可能有人没有这样做,因为如果有人使用JavaScript样式,而不是在末尾写分号,而是在必要时将分号放在行首,那么您的行本质上不会被视为连续行。Vim必须支持这两种风格的JavaScript,即使不是每个人都同意这两种方式都是好主意。

无论如何,文件头(在我的系统上是/usr/share/vim/vim82/indent/javascript.vim)包含一个GitHub URL,您可以在其中报告此问题,并发送补丁或查看其他人是否愿意编写补丁。您还可以通过在.vimrc中编写类似以下内容来关闭indentexpr值

代码语言:javascript复制au FileType javascript setl indentexpr=在这种情况下,您将获得默认的autoindent行为。