将 vim 设置为使用与上一行相同的字符自动缩进

set vim to autoindent using the same characters as the previous line

我在所有文件中都使用制表符进行缩进。然而,一些更大的项目仍然使用空间,所以我在贡献时也需要遵循这些准则。

如果编辑器检测到编辑文件中使用的缩进字符,并在例如编辑文件时使用该缩进字符,这个问题就很容易解决。自动缩进。

可悲的是,vim 强制使用空格进行缩进,即使我正在编辑一个只使用制表符的文件。

如何让 vim 始终只使用文件正在使用的内容(如果文件未使用任何内容,则使用制表符)?

我尝试将以下行添加到 ~/.vimrc 并重新打开我正在编辑的文件,但这并没有生效。

我是运行vim-8.0.0386

看起来 tpope/sleuth 插件正是您想要的。

否则,DetectIndent 也有效。 克隆 .vim/bundle/ 目录中的 DetectIndent 存储库(我使用病原体安装插件),然后打开任何文件并键入::DetectIndent

现在应该根据您的文件调整 shiftwidth、expandtab 和 tabstop。

这是另一个插件推荐:我的IndentConsistencyCop plugin。它不仅会检测使用的缩进设置,还会在同一文件中使用不一致的设置时发出警告。