Windows命令行中的Vim看到已删除的文件,而gVim不是

时间:2016-09-14 05:58:13

标签: windows powershell vim cmd

此处关注的目录为C:\Program Files (x86)\Vim,所关注的文件是_vimrc的副本。

系统是Windows 10. cmd.exePowershell下的行为相同。 vim版本为7.4。

我在一个目录下创建了一个文本文件,假设它有一个文件名“xxx”,然后我删除了这个文件。命令DIR(或Powershell下的LS)表示该文件已删除,del xxxrm xxx也会报告“xxx不存在”。

但是,在命令行vim下仍然可以在同一目录中看到此文件,而gvim则看不到此文件。即,vim xxx将显示原始内容,而gvim xxx将表示文件xxx不存在并将创建新文件。

vim .还会显示已删除的文件仍然存在,而gvim .显示相反的情况。

奇怪的是,当以管理员身份运行命令行时,vimgvim都不会看到该文件,vim .也会显示已删除的文件不存在。

似乎所有“系统目录”中都出现了类似的行为。也就是说,如果我使用vim(命令行;非管理员)在系统目录下创建新文件,该文件将不会显示DIRLS命令,并且gvim将无法看到它,但vim将能够查看和修改它。

1 个答案:

答案 0 :(得分:0)

我发现问题是由于Windows的虚拟化机制造成的。

当非管理员用户尝试在系统文件夹下创建文件时,Windows会默默地将文件重定向到该用户的本地目录,该目录位于 C:\Users\YourName\AppData\Local\VirtualStore\,该文件的行为就像它在目标目录下一样。

请参阅http://www.symantec.com/connect/articles/folder-virtualization-concepts-windows-vista