Como o Vim e o Windows podem ver dois arquivos diferentes que possuem o mesmo nome no diretório de arquivos de programas

6

Estou vendo uma interação estranha entre o vim, as ferramentas do Cygwin e o Windows7. Não acho que seja um bug, mas, ao mesmo tempo, não tenho ideia de como explicar o que estou vendo.

Eu instalei o Vim (do vim.org, não do Cygwin vim) em:

"C:\Program Files (x86)\Vim".

Eu cd para este diretório e editei meu arquivo _vimrc usando o próprio vim.

vim _vimrc

Eu adicionei algumas configurações, escrevi o arquivo e saí.

Eu então copiei o arquivo para um diretório diferente para criar um backup das minhas alterações.

copy _vimrc c:\tmp

Foi quando notei o problema. A cópia do arquivo não contém minhas alterações. Muita investigação se seguiu. Vou resumir as descobertas.

Dentro de "C: \ Arquivos de Programas (x86) \ Vim", vejo minhas alterações se eu inspecionar o arquivo com qualquer um dos seguintes itens:

vim, cat, less

(Aqui, cat e menos são as versões do Cygwin.)

No entanto, não vejo minhas alterações Se eu inspecionar o arquivo com um dos itens a seguir:

notepad, type, more

(O tipo de comando e mais são comandos padrão do shell do Windows.)

Para dar um sabor a você:

c:\Program Files (x86)\Vim>ls -l _vimrc
-rwx------+ 1 carlx Domain Users 936 Dec 23 21:15 _vimrc

c:\Program Files (x86)\Vim>dir _vimrc
 Volume in drive C is OSDisk
 Volume Serial Number is 6C86-85EB

 Directory of c:\Program Files (x86)\Vim

06/28/2011  02:09 PM               901 _vimrc
               1 File(s)            901 bytes
               0 Dir(s)  95,964,721,152 bytes free

O comando Cygwin ls mostra um arquivo diferente (data e tamanho diferentes) do que o comando dir do Windows.

Eu pensei que talvez fosse algum tipo de problema com o case do nome do arquivo, mas especificando _VIMRC versus _vimrc para qualquer um desses comandos, não faz diferença.

Alguém pode explicar o que estou vendo aqui?

    
por Carl Parker 25.12.2011 / 04:26

4 respostas

0

Como Raymond Chen e @kreemoweet supuseram em seus comentários, esse era um problema de virtualização do sistema de arquivos, e eu encontrei o arquivo em:

c:\users\<youraccoutname>\appdata\local\virtualstore\program files(86)

E essa foi a resposta. Obrigado pessoal.

    
por 19.12.2016 / 16:34
3

Como Raymond Chen e @kreemoweet apontaram acima, isso é causado pela virtualização do sistema de arquivos . Para desativar isso, você pode usar o editor de Diretiva de Grupo Local, gpedit.msc . Digite start gpedit.msc em um prompt de comando e navegue até Configuração do Computador > Configurações do Windows > Configurações de segurança > Políticas locais > Opções de segurança. Role até a parte inferior da janela da direita e clique duas vezes em User Account Control: Virtualize file and registry write failures to per-user locations . Altere a configuração de Enabled para Disabled.

    
por 16.05.2012 / 19:44
0

O sistema de arquivos NTFS normalmente usado pelo Windows suporta vários arquivos com o mesmo nome que diferem apenas no caso, como parte dos esforços do Windows em relação à conformidade com POSIX. Detalhes adicionais estão disponíveis no link . No entanto, todo o Windows (e presumivelmente a maioria de suas APIs) e os aplicativos fornecidos pelo Windows impedem isso.

É bem provável que você tenha _vimrc e _VIMRC existentes ao mesmo tempo - e a API padrão está mostrando apenas uma delas (não tenho certeza de qual lógica é usada para escolher qual delas). Eu diria que o vim deve estar usando uma API não padrão ou chamando-a com uma opção não-padrão para resultar no que você está observando, mas não consigo reproduzir isso com o vim sozinho. Eu consideraria isso um bug no Cygwin, vim, copy ou o que realmente resultou nessa situação - o que traz um bom ponto - você realmente usou copy (não existe no Cygwin) ou cp ?

Consulte também o link . Há uma configuração de registro aqui que você deve verificar, o que não é limitado ao Cygwin.

    
por 25.12.2011 / 04:34
0

O que acontece se você executar C:\Windows\SysWOW64\cmd.exe do dir ? Aposto que você está sendo WOW64 File Redirected.

    
por 25.12.2011 / 05:58