Vim 有时不会在没有 "!"的情况下写入文件 (E13)

标签 vim

很多时候(如每小时多次),当我保存我的文件时 :w ,vim 告诉我“E13:文件存在(添加!覆盖)”

Example

我不知道它为什么这样做,我无法可靠地重现它,感觉是随机的。

This是我的 vimrc,注意它设置了 nobackup , nowritebackup , 和 noswapfile ,并且有一个函数可以去除在我保存文件时运行的尾随空格。

另外,我倾向于一次打开 20 个 vim,它们都是后台运行的,经常编辑同一个文件。我在多个窗口(即 :vsp )中打开相同的缓冲区也不是不可能的,并且可能会打开它,然后用 e 重新打开它命令很多,可能来自相对文件路径,也可能来自绝对文件路径( cmap %/ <C-R>=expand("%:p:h")."/"<CR> )。不知道这是否重要。下次遇到这个问题时,我会检查我的 ls并报告任何奇怪的事情。

更新:

当我尝试保存“lib/seeing_is_believing/wrap_expressions.rb”(请注意,这是与 gif 中的文件不同的文件)时,这种情况再次发生。这是 ss,它是缓冲区 3:

ls

Update2(对于@mMontu)

我刚刚意识到这里发生了两个错误。屏幕截图中的那个是只读的。 gif中的那个是比较常见的,E13: File exists (add ! to override)
我刚打的那个是E13 File exists ,对于这个,只读没有设置:

readonly is not set

更新 3

我很确定问题出在 ZoomWin 插件。我已将其切换到较新的版本,但它根本无法正常工作。所以我暂时停止使用它,并没有出现这个问题。然后把它切换回来,b/c 我想念它的功能(这是我最喜欢的 vim 插件),问题又开始了。可能是 ZoomWin 与 NerdTree 窗口结合使用。可能不是 lib 作者的错误,vim 总体上看起来很脆弱和有缺陷。也许我会尝试 NeoVim,看看他们是否做得更好。也许是时候再次尝试 Atom 或 Emacs 了。

最佳答案

似乎如果打开文件时出现读取错误,Vim 会在 :w 上打印错误信息。 .这可以通过运行 :f 看到:

"MANIFEST.in" [Read errors] 1 line --100%--

错误不一定是读取文件内容的错误;它们可能是由插件引起的。

关于Vim 有时不会在没有 "!"的情况下写入文件 (E13),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26070153/

相关文章:

python - 如何在 VIM 中设置文件的正确路径?

vim - 如何在 Vim 中快速删除一对圆括号、中括号或大括号?

vim - 如何在vim中打开一个新文件,但不是同一个文件

vim - 如何从该插件中获取 vim 插件的目录?

ruby - ruby 插件会使启动 vim 很慢吗?

vim - Whack vim 屏幕绘制错误

search - vim 中某个单词在文件的一部分中出现的次数

vim - E185 : Cannot find color scheme*

vim - 在 Vim 中的新命令定义中调用 Replace() 和 Expand()

c++ - Vim "take control"的终端如何并允许其用作可修改的缓冲区?