如何设置 vim 使其具有与打开的文件相同的制表符和空格约定?

Gab*_*ton 3 vim

是否可以将 vim 与基于缓冲区的 {expandtab、tabstop、shiftwidth} 设置一起使用?例如,我编辑一个使用 2 个空格缩进的文件

stuct A {
  void foo () {
    int x;
  }
};
Run Code Online (Sandbox Code Playgroud)

以及另一个带有选项卡的文件

int main() {
    int i; // \t is used as indentation
    return i;
}
Run Code Online (Sandbox Code Playgroud)

当然,我可以逐个缓冲区手动设置值,但我希望 vim 自动执行此操作。这可以做到吗?或者有一个插件可以为我做到这一点吗?

flo*_*din 5

使用vim-sleuth自动检测您正在打开的文件中的制表符约定。