我正在编辑'C:\ Program Files ...'文件夹下的apache2.conf配置文件。此文件夹需要提升权限(“以管理员身份启动程序”)才能写入此文件夹中的任何位置。
vim错误地打开文件而没有提升 - 没有显示任何警告。而且,我能够保存文件(':wq'),没有任何警告。用vim再次打开文件 - 向我展示了修改过的文件。但是 - Apache的行为没有变化(当然)。
尝试使用记事本打开文件 - 显示文件未被修改。
然后,尝试从提升的shell中使用vim打开文件 - 我得到了原始文件(就像记事本一样),但这一次,我能够编辑文件并保存。
我知道该文件有两个版本。真实的文件(由记事本,提升的shell显示,只是'类型',由apache httpd看到),以及我编辑并从未加工的shell中保存的文件 - 存储在某处(其中???)。
这非常不舒服,因为有时候我会从常规shell中错误地打开这个文件(即使只是为了阅读)。
发生了什么事?如何退出此状态?
答案 0 :(得分:2)
我被称为“虚拟商店”的Windows功能所击中。在不知情的应用程序(即本例中的vim)下面,以兼容模式运行的操作系统会将文件保存在名为“Virtual Store”的文件夹中,位于以下位置:C:\Users\<login name>\AppData\Local\VirtualStore\...
。应用程序将不知道该文件去了那里。后续读取将从该虚拟存储位置读取。
似乎vim不是UAC意识到并且它在兼容模式下运行 - 可以修复,但是对于版本7.4它没有。