gVIM quebra links simbólicos no windows?

7

Estou tentando manter minha configuração gVIM em um local centralizado. Para isso, eu fiz

mklink c:\users\me\.vimrc c:\users\me\configs\_vimrc

Isso funciona bem até eu mudar o $ MYVIMRC dentro do VIM. Isso instantaneamente quebra o symlink (c: \ users \ me.vimrc deixa de ser um symlink e se torna um arquivo comum). É alguma maneira de consertar esse comportamento? SO é o Windows Vista com as atualizações mais recentes. gVIM é 7.2 do site oficial.

    
por grigoryvp 08.10.2009 / 18:45

3 respostas

3

O Vim é supostamente para manipular isso corretamente por padrão. (: help backupcopy)

Por padrão, em plataformas não-unix, backupcopy é definido como "auto". Ele normalmente renomeia o arquivo e grava um novo arquivo alterado quando você salva, mas deve modificar o arquivo original se o arquivo original for um link ou tiver uma bifurcação de recursos, etc.

Várias possibilidades:

  1. Sua versão do vim não reconhece que o arquivo é um link simbólico.
  2. Você definiu backupcopy ou uma variável relacionada (breaksymlink?) para substituir o comportamento padrão.

Eu ficaria surpreso se for 1, já que você está lidando com uma versão recente do vim. Isso acontece se você tiver um .vimrc vazio?

    
por 09.10.2009 / 01:33
1

Tente

mklink /J c:\users\me c:\users\me\configs

Isso criará uma junção de diretório de hardlink entre c:\users\me e c:\users\me\configs que o Vista respeitará quando você reescrever seu vimrc.

    
por 08.10.2009 / 23:13
1

O usuário xaizek sugeriu uma solução alternativa nos comentários de uma pergunta relacionada que fiz: Symlink para .vimrc no Windows torna o arquivo readonly após a gravação. Por quê? Adotei a solução dele, mas tornei a atribuição $MYVIMRC condicional porque uso os sistemas Windows e OSX:

Então, no meu arquivo ~/.vimrc do Windows eu tenho:

source /path/to/shared/vimrc

Então, no arquivo .vimrc compartilhado, eu tenho:

if has("win32")
    let $MYVIMRC='~/path/to/shared/.vimrc'
endif
    
por 31.08.2012 / 15:27

Tags