此处关注的目录为C:\Program Files (x86)\Vim
,所关注的文件是_vimrc
的副本。
系统是Windows 10. cmd.exe
和Powershell
下的行为相同。 vim
版本为7.4。
我在一个目录下创建了一个文本文件,假设它有一个文件名“xxx”,然后我删除了这个文件。命令DIR
(或Powershell下的LS
)表示该文件已删除,del xxx
或rm xxx
也会报告“xxx不存在”。
但是,在命令行vim
下仍然可以在同一目录中看到此文件,而gvim
则看不到此文件。即,vim xxx
将显示原始内容,而gvim xxx
将表示文件xxx不存在并将创建新文件。
vim .
还会显示已删除的文件仍然存在,而gvim .
显示相反的情况。
奇怪的是,当以管理员身份运行命令行时,vim
和gvim
都不会看到该文件,vim .
也会显示已删除的文件不存在。
似乎所有“系统目录”中都出现了类似的行为。也就是说,如果我使用vim
(命令行;非管理员)在系统目录下创建新文件,该文件将不会显示DIR
或LS
命令,并且gvim
将无法看到它,但vim
将能够查看和修改它。
答案 0 :(得分:0)
我发现问题是由于Windows的虚拟化机制造成的。
当非管理员用户尝试在系统文件夹下创建文件时,Windows会默默地将文件重定向到该用户的本地目录,该目录位于
C:\Users\YourName\AppData\Local\VirtualStore\
,该文件的行为就像它在目标目录下一样。
请参阅http://www.symantec.com/connect/articles/folder-virtualization-concepts-windows-vista