我的一个文件的制表位设置不正确

One of my files has an incorrect tabstop setting

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

set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab

和 'tab' 未在任何后续行中提及。当我打开我正在处理的特定文件时,'tabstop' 选项设置为 8,而所有其他相关选项都是正确的;和所有其他文件(到目前为止)正确显示它们的缩进。我不使用模式行或智能选项卡(还)。如果我在文件中获取我的 vimrc,它会更正缩进,所以我假设它与 vimrc 没有任何直接关系。 发生了什么事?

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

:verbose set tabstop?

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

:scriptnames

(最好在加载有问题的文件后立即在新启动的 Vim 副本中执行此操作——这样,:scriptnames 的输出会更少。)

完成这些步骤后,您应该有一个可能是罪魁祸首的脚本列表。没有简单的方法可以缩小范围:您必须 grep,暂时从 ~/.vim 中删除插件等等。

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