为什么 `set binary` 会重置 `expandtab` 属性?

Why does `set binary` reset `expandtab` property?

在 Vim 中,为什么在 set expandtab 之后包含 set binary 取消设置 expandtab?我是第一次遇到这个问题,这里是另一个 SO 用户在过去遇到同样问题的评论:How can I find out why vim keeps changing my expandtab setting

因为在二进制文件的上下文中将制表符扩展为空格几乎总是错误的:

  1. 制表符可能根本不代表空格;它们可能只是恰好是 \t 的字节。展开会改变意思。
  2. 可能需要保留文件中的偏移量,而 expandtab 不需要。
  3. 编辑二进制文件时,任何类型的自动空白操作几乎没有实际好处;假定二进制文件主要是 binary 而不是文本,因此缩进之类的东西一开始就不是问题。