VIM tab奇怪,每次保存都必须重新标记?

VIM tab奇怪,每次保存都必须重新标记?,vim,Vim,好吧,这真的很奇怪。我已经永远使用VIM,确切地说是二十年了。现在我有一种非常奇怪的行为。这周才开始 我的空白几乎被每一次编辑都搞砸了 我有很长的工作代码。我打开它,使用“o”添加一行,甚至只是一个print语句,似乎我从python中得到了不正确的缩进错误,尽管代码看起来不错 我可以在每次保存之前运行set et | retab来解决这个问题,但这似乎是错误和麻烦的 我可能会错过什么?如果这应该在StackExchange的其他地方,请告诉我 谢谢 --编辑-- 详细设置本地et? 给出了:

好吧,这真的很奇怪。我已经永远使用VIM,确切地说是二十年了。现在我有一种非常奇怪的行为。这周才开始

我的空白几乎被每一次编辑都搞砸了

我有很长的工作代码。我打开它,使用“o”添加一行,甚至只是一个print语句,似乎我从python中得到了不正确的缩进错误,尽管代码看起来不错

我可以在每次保存之前运行
set et | retab
来解决这个问题,但这似乎是错误和麻烦的

我可能会错过什么?如果这应该在StackExchange的其他地方,请告诉我

谢谢

--编辑--

详细设置本地et?
给出了:

扩展选项卡 来自~/.vimrc的最后一组

这正是我所期望的

.vimrc的相关部分:

设置shiftwidth=4 设置softtabstop=4 设置tabstop=4 设置扩展选项卡



几个月内没有vim版本的更改。我认为windows可能在上周晚些时候或本周初举办了一次更新派对。这可能是巧合,也可能不是巧合。

好吧,奇怪消失了。也许只是随着时间的推移,也许是更多的Windows更新。不知道,不过现在好多了。唉。我讨厌自己解决的问题。它们总是让我担心。

有趣的是,我只有
*.slim
文件有类似的问题。我通过在我的
.vimrc
中的每个
:write
上强制重新标记这些文件来解决这个问题:

fu! ResetSpaces()
    set tabstop=2
    set noexpandtab
    %retab!
endfunction

autocmd BufWritePre *.slim :call ResetSpaces()

您是否更改了vim的版本?你最近有没有玩过你的配置?你也许应该看看expandtab。在同一个python文件中混合了制表符和空格,retab修复了这一问题。问题开始的原因目前还是个谜。您的缩进设置是什么
:verbose setlocal et?
当您
:set et
时,保存后是否真的会恢复为
noet
?我知道retab正在修复它,我想知道为什么会发生这种情况。修复一个损坏的文件没什么大不了的,但我正在试图弄清楚它为什么会不断损坏。如果设置了
et
,那么它一定是插入文字
字符的东西。您是否有任何插件/映射(最近有更新)?没有插件或新映射。我能想到的只有两件事是Windows更新。(我需要说服我的公司老板让我使用linux),或者可能是因为我有另一个系统接触了其中一些文件,然后将它们签入了bitbucket。但是我已经好几天没有从那台机器上做过检查了,我发现问题每天都会出现好几次。