Vim 即使使用 sudo 也默认以只读模式打开一些文件

Vim opens some files in readonly mode by default even when use sudo

我在使用 vim 时遇到了奇怪的问题 - 对于某些文件,即使我使用 sudo,它也不会为语法着色并默认以只读模式打开它。这个文件的 chmod 是 664,我也是这个文件的所有者,所以通常我不应该。

我的 vimrc 中没有 set ro

我还注意到,在删除此文件的 .swp 后经常会发生这种情况 - 不幸的是,在此之后,每次都以只读模式打开此特定文件。一个想法是——也许这是某种 spf13 缓存?

对于其他文件,该行为是正确的。

有人知道这个问题吗?

可能是 spf13。在我看来,spf13 造成的问题太多了。当您看到问题时,尝试执行 :verbose set readonly?,看看它是从哪里发生的。我的猜测:

  1. 我想我记得 spf13 有某种内置的自动会话管理,这将在文件上恢复 'readonly' 如果它曾在该文件上设置过。
  2. 很有可能(一个相当常见的解决方案)如果 spf13 检测到现有的交换文件,它会自动以只读模式打开文件,触发 (1)。
  3. 也很可能某些 autocmd 或其他与 (2) 相关的设置了空文件类型或语法,这同样会被 (1) 记住。

如果是这种情况,您可能可以找到导致问题的会话文件(使用 :verbose set readonly? 命令)并将其删除。

还要考虑一下,您是否真的需要所有 spf13,或者您是否可以通过安装插件和自己配置 Vim 来更轻松地实现所需的配置。

我找到了解决方案 - 它比我预期的要简单。

我更仔细地阅读了 vim 消息,最后看到:

if you did this already, delete the swap file `~/.vimswap/urls.py.swp`

所以我做了一些小调查,我在我的 /home 目录中找到了 .vimviews。我刚刚删除了它的内容并且......它有效!