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