Parece que você precisa definir a localização do seu arquivo viminfo também, com algo como:
set viminfo+=n~/.vim/viminfo
Veja :help viminfo
e :help 21.3
para mais informações.
Já verifiquei vários links semelhantes, mas nada funcionou. Antes de eu explicar o problema, eu estava recebendo antes de seguir a mensagem ao salvar qualquer arquivo:
vim e509 Cannot create backup file (add ! to override)
Enquanto pesquisava a solução, encontrei vários links que sugeriam a criação do arquivo .vimrc. Então criei um e digitei o seguinte conteúdo:
set backup
set backupdir=~/.vim/backups
Eu também criei o diretório ~ / .vim / backups. Além disso, não há arquivo .viminfo. Acho que o removi enquanto tentava consertar as coisas.
Alguns outros detalhes que podem ser de interesse são:
-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/
Agora, com as permissões acima no lugar (sem gravação para qualquer usuário em qualquer um dos diretórios pai), sempre que eu alternar para o usuário git e tentar salvar qualquer arquivo, estou recebendo agora o seguinte erro:
E138: Can't write viminfo file /var/opt/gitlab/.viminfo!
Press ENTER or type command to continue
O erro acima é esperado ou estou fazendo algo errado? O aplicativo GitLab cria um usuário git como parte do processo de instalação, por isso não tenho certeza se a alteração das permissões será uma boa ideia.
System Info:
[root@gitlab gitlab]# cat /etc/*release
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID_LIKE="rhel fedora"
Para mim, o problema era que ~/.vim/files/info/viminfo
era um diretório em vez de um arquivo.
Tags permissions vim vimrc