我的一个文件的Tabstop设置不正确

Zoe*_*wll 1 vim indentation auto-indent

每当我打开一个文件时,“ tabstop”选项的值都不同(不正确)。在我的.vimrc中,有以下一行:

set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab
Run Code Online (Sandbox Code Playgroud)

和“制表符”未在任何后续行中提及。当我打开正在处理的特定文件时,“ tabstop”选项设置为8,而所有其他相关选项都是正确的。和所有其他文件(到目前为止)正确显示其缩进。我还没有使用模式行或智能标签。如果我在文件中获取vimrc,它将纠正缩进,因此我假设它与vimrc没有直接关系。怎么了?

Ale*_*hev 5

基本上,有两种方法.vimrc可以使您的种子成为超级种子:插件(包括特定于文件类型的插件)可能会重置该选项,或者可能会被自动命令更改。无论如何,您的第一步是检查该选项的最后修改时间(请参阅参考资料:set-verbose):

:verbose set tabstop?
Run Code Online (Sandbox Code Playgroud)

如果这还不够,请查看Vim自启动以来已读取的所有脚本和配置文件的列表:

:scriptnames
Run Code Online (Sandbox Code Playgroud)

(最好是在加载有问题的文件后立即在新近启动的Vim副本中执行此操作-这样,来自的输出将减少:scriptnames。)

完成这些步骤之后,您应该有一个可能是罪魁祸首的脚本列表。没有简单的方法可以缩小范围:您必须grep临时禁用插件~/.vim,以此类推。

最后,您会找到一条更改设置的行。如果在插件中,请查看其文档以找到一种方法来覆盖该设置。如果它位于缩进文件或ftplugin中,请通过将文件放在~/.vim/after/indent/或中来覆盖其效果~/.vim/after/ftplugin。自动命令也可能起作用。