恐怕我遇到了一些相当奇怪的事情。当我正常打开文件时,vim README.txt
一切都很好。但是在 上,该文件呈现空白,并在尝试退出时sudo vim README.txt
给出错误。E138: Can't write viminfo file $HOME/.viminfo!
我怀疑.viminfo
文件已损坏,所以我删除了它。这个问题仍然存在。有人能帮忙吗?
答案1
当你运行时,sudo vim
你以 root 身份启动 vim。这意味着 /root 中的 viminfo 文件有问题。你应该做rm /root/.viminf*
。
为了确保这一点,请运行sudo vim
并执行以下命令::!echo $HOME
。这将显示您的主目录是/root。
我建议您不要以 root 身份运行 vim,而是使用sudoedit
.这是一个更安全的解决方案,因为编辑器不以 root 身份运行。你永远不知道插件会做什么。此外,它允许您在 vim 中使用自己的设置和插件,而不是 root vimrc 中的设置和插件。sudoedit
和跑步一样sudo -e
。 sudoedit 的工作原理是制作调用用户(您)拥有的文件的临时副本。完成编辑后,更改将写入实际文件并删除临时文件。
一般经验法则:如果没有必要,不要以 root 身份运行。
答案2
每次退出时我都会遇到此错误。我没有使用sudo
。它明确提到了我的用户主目录:
E138: Can't write viminfo file /Users/henrik/.viminfo!
删除~/.viminfo
并没有修复错误。
结果我有一堆 viminfo 临时文件,删除这些文件解决了问题:
ls ~/.viminf* # If you want to see the files.
rm -rf ~/.viminf* # Remove them.
找到了这个解决方案这里。
答案3
:wq
当我尝试访问完全满的磁盘上的文件时,我收到了同样的错误。如果您收到此消息,您可能希望检查您的可用磁盘空间。
答案4
例如,创建主目录的更简洁的方法是使用 linux 为您提供的框架。
sudo cp -a /etc/skel /home/usernmae && sudo chown -R usernmae:usernmae /home/usernmae