我已经检查了几个类似的链接,但都不起作用。在我解释这个问题之前,我在保存任何文件时都收到以下消息:
vim e509 Cannot create backup file (add ! to override)
在寻找解决方案时,我遇到了几个建议创建 .vimrc 文件的链接。所以我创建了一个并在其中输入了以下内容:
set backup
set backupdir=~/.vim/backups
我还创建了 ~/.vim/backups 目录。另外,没有 .viminfo 文件。我想我在尝试修复问题时删除了它。
其他一些可能令人感兴趣的细节包括:
-sh-4.2$ id
uid=497(git) gid=496(git) groups=496(git)
-sh-4.2$ ls -ld .vim*
drwxr-xr-x 3 git git 4096 Dec 28 21:59 .vim
-rw-r--r-- 1 git git 40 Dec 28 22:09 .vimrc
-sh-4.2$ ls -l .vim/
drwxr-xr-x 2 git git 4096 Dec 28 22:11 backups
-sh-4.2$ pwd
/var/opt/gitlab
-sh-4.2$ ls -ld /var/
drwxr-xr-x 20 root root 4096 Dec 20 22:31 /var/
-sh-4.2$ ls -ld /var/opt/
drwxr-xr-x 3 root root 4096 Oct 21 21:01 /var/opt/
-sh-4.2$ ls -ld /var/opt/gitlab/
drwxr-xr-x 15 root root 4096 Dec 28 22:08 /var/opt/gitlab/
现在有了上述权限(任何用户都无权在任何父目录中写入),每当我切换到 git 用户并尝试保存任何文件时,都会出现以下错误:
E138: Can't write viminfo file /var/opt/gitlab/.viminfo!
Press ENTER or type command to continue
上述错误是预期的错误还是我做错了什么? GitLab 应用程序在安装过程中创建了 git 用户,因此我不确定更改权限是否是个好主意。
System Info:
[root@gitlab gitlab]# cat /etc/*release
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID_LIKE="rhel fedora"
答案1
看起来您还需要设置 viminfo 文件的位置,例如:
set viminfo+=n~/.vim/viminfo
请参阅:help viminfo
和:help 21.3
以了解更多信息。
答案2
对我来说问题在于那~/.vim/files/info/viminfo
是一个目录而不是一个文件。