2014-01-21 14 views
2

我正在编辑'C:\ Program Files ...'文件夹下的apache2.conf配置文件。此文件夹需要提升权限(“以管理员身份启动程序”)才能写入此文件夹的任何位置。在Windows上需要提升权限的文件夹中用vim保存文件的奇怪行为

用vim无错打开文件 - 没有显示任何警告。此外,我可以保存文件(':wq'),没有任何警告。用vim再次打开文件 - 显示了修改后的文件。但是 - 没有改变Apache的行为(当然)。

试图用记事本打开文件 - 显示文件未被修改。

然后,试图用高级shell从vim打开文件 - 我得到了原始文件(就像记事本一样),但是这一次,我能够编辑文件并保存它。

我知道有两个版本的文件。真正的文件(由记事本,提升的shell显示,'type'和apache httpd显示)以及我编辑并从未升级的shell保存的文件 - 存储在某处(其中???)。

这是非常不舒服的,因为有时我从一个普通的shell(甚至只是为了读取)错误地打开这个文件。

这是怎么回事?我如何退出这个状态?

+0

也许有一些保存在Vim中的缓冲区(以'〜'或'.swp'或'.swo'结尾的文件)。尝试查看由vim变量'backupdir'定义的目录(':set backupdir?'in _normal mode_以显示其值)以查找此文件。 –

+1

或从普通和特权shell中编辑文件后,尝试':echo expand('%:p')'。 – benjifisher

回答

2

我被称为“虚拟商店”的Windows功能所击中。在未知应用程序(即本例中的vim)下面,以兼容模式运行的操作系统会将文件保存在名为“Virtual Store”的文件夹中,位于以下位置:C:\Users\<login name>\AppData\Local\VirtualStore\...。应用程序不会意识到文件已经到达那里。随后的读取将从该虚拟存储位置读取。

看来vim不是UAC意识到的,它在兼容模式下运行 - 可以修复,但对于7.4版本,它没有。

+0

谢谢@Michael编辑! – Uri