繁体   English   中英

Windows命令行中的Vim看到了已删除的文件,而gVim却没有

[英]Vim in Windows command line is seeing deleted files while gVim is not

这里关注的目录是C:\\Program Files (x86)\\Vim ,关注的文件是_vimrc的副本。

系统是Powershell 。在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 . 还显示删除的文件不存在。


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

我发现问题出在Windows的虚拟化机制上。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM