[英]Vim in Windows command line is seeing deleted files while gVim is not
这里关注的目录是C:\\Program Files (x86)\\Vim
,关注的文件是_vimrc
的副本。
系统是Powershell
。在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 .
还显示删除的文件不存在。
在所有“系统目录”中似乎都出现了类似的行为。 也就是说,如果我使用vim
(命令行;非管理员)在系统目录下创建新文件,则该文件将不会使用DIR
或LS
命令显示,并且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.