Estou tentando mover meu .viminfo
arquivo para minha .vim/
pasta para uma sincronização mais limpa em várias máquinas. (Eu tenho meu .vim
armazenado no Dropbox e, em seguida, crio links simbólicos para ele no meu diretório pessoal.)
Então, nesta manhã, encontrei esta resposta sobre como fazer exatamente isso. Ótimo! Infelizmente, eu uso o Windows no trabalho e o Mac em casa, o que ~/.vim
acontece algumas vezes ~/vimfiles
. Como resultado, uma solução de uma linha
set viminfo+=n~/.vim/viminfo
agora se tornou uma solução de 5 linhas
if has('unix')
set viminfo+=n~/.vim/viminfo
elseif has('win32')
set viminfo+=n~/vimfiles/viminfo
endif
o que me parece desajeitado.
Existe algum tipo de variável de ambiente padrão que posso usar para acessar o caminho de tempo de execução específico do usuário, à la $VIMRUNTIME
ou $MYVIMRC
? Ou isso é algo que eu só tenho que dançar?
Supondo que você não o tenha alterado, o primeiro item em
&runtimepath
é seu diretório de tempo de execução por padrão:Você pode usar esse valor para informar ao Vim onde colocar seu
viminfo
arquivo com este liner independente de plataforma:Recursos:
fonte
&runtimepath
é manipulado pelos gerenciadores de plugins, não há absolutamente nenhuma razão para começar com$HOME/.vim
ou com$HOME\vimfiles
.&runtimepath
sempre inicie com o diretório de tempo de execução padrão no nível de usuário da plataforma atual. Agora, é obviamente possível que o usuário'rtp'
destrua seu reconhecimento irreconhecível, mas o patógeno, vundle, plug, VAM e neobundle do AFAIK todos partem~/.vim
(ou similares) no início.pathogen#infect("$VIM/local/bundle/{}")
:, para permitir (1) ter pacotes disponíveis para todos os usuários, (2) mantê-los separados do tempo de execução principal do Vim e (3) permitir que eu os atualize automaticamente.~/.vim
acaba no meio do grupo com essa configuração.O primeiro erro que vejo repetidamente em relação ao Windows é sempre tentar resolver o problema usando
$HOME
, não.O uso
$HOME
acabará causando problemas, especialmente se você usar qualquer ambiente semelhante ao Unix (Cygwin, git bash, etc.). Não o use em scripts, não o defina como uma variável de ambiente. De fato, a configuração$HOME
fará com que o Cygwin pare de funcionar corretamente e o git bash faça o mesmo. Quanto mais você brinca com$HOME
os piores, os bugs ficam mais difíceis. Só não use.O Windows constrói
$HOME
rapidamente e nos bastidores com%HOMEDRIVE%%HOMEPATH%
. Basta usar isso dentro de seu (_vimrc
ouvimrc
sem ponto):Isso deve resolver o problema. Se você mudou
vimfiles
para.vim
ajustar em conformidade.fonte
O que fiz foi renomear a pasta viminfo do Windows para .vim (ou copiar o conteúdo do primeiro para o último e depois excluí-lo) e vinculá-lo novamente
mklink /d viminfo .vim
. (Observe que o mklink leva seus argumentos na ordem oposta ao comando ln do Unix.)fonte