无法在 Vim 编辑器中写入对文件的更改

Aar*_*gen 5 linux osx vim permissions xml

我有一个 100 GB 的 xml 文档,我正在将其批量迁移到数据库。
在 中vim,我可以编辑文件,但无法使用:wq:q或保存更改:xx

我收到错误消息this file is read only - press ! to override
没有任何效果,所以我使用:q!忽略我的更改并退出vim.

我怎样才能保存我的更改?

奖金问题

如果我不等待整个文件加载到内存中并按Ctrl + c查看已填充的内容,则保存该文档是否只会保存加载到内存中的内容并删除其余内容?

Isk*_*tvo 3

该消息file is read only - press ! to override意味着您无权写入正在编辑的文件,因此您所做的更改无法写入该文件。

最简单的解决方案是将编辑的文件内容写入另一个文件:w file_name,假设这file_name是您有权限写入的文件的路径。

除此之外,您需要找出为什么您没有写入原始文件的权限。
你可以用 来做到这一点ls -l file_name(我已经解释了here
的输出。) ls -l file_name

现在您对权限有了更多的了解,您有 3 个选择:

  1. 用于sudo vim file_name以用户身份编辑文件root

  2. 使用chmod授予其他用户write权限。

  3. 使用chown更改文件的所有者。

  • @AaronBrandhagen 请不要误解,你不会“总是”使用“sudo”,只有在必要时才使用。我已经更新了答案,以便为您提供更多选择(如果这些选择对您的情况有意义)。 (2认同)
  • 更别提了!不用担心。我非常感谢良好的帮助,否则我会挣扎几个小时。给予你荣誉是我能做的最低限度的事情——我绝对会给你荣誉!毫无疑问,我也想要同样的东西。 (2认同)