![为什么在编辑 USB 记忆棒上的文件时,gvim 经常会卡住?](https://linux22.com/image/1249718/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E7%BC%96%E8%BE%91%20USB%20%E8%AE%B0%E5%BF%86%E6%A3%92%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E6%97%B6%EF%BC%8Cgvim%20%E7%BB%8F%E5%B8%B8%E4%BC%9A%E5%8D%A1%E4%BD%8F%EF%BC%9F.png)
我在 Windows XP 上使用 gvim 7.2 编辑速度较慢的 USB 记忆棒上的文件。当其他程序访问该记忆棒时,编辑器会冻结几秒钟。
我已经尝试使用“set directory”命令将 Vim 交换文件移动到硬盘上。为什么 gvim 在我编辑时访问磁盘?我该怎么做才能防止这些冻结?
更新:使用进程监控工具,我发现当 gvim 检查窗口获得焦点时文件是否发生更改时会发生冻结。有没有办法关闭它?
答案1
可能是 gvim 的自动阅读功能,用于检查正在编辑的文件是否在 gvim 之外进行了更改。您可以控制此功能。请参阅gvim FAQ 的相关部分。
答案2
我认为这是由于 vim 读取和写入的 .filename.swp 文件与您正在编辑的文件位于同一目录中。
为了解决这个问题,你可以这样做:
:设置目录=/tmp
:vi
这假设 /tmp 速度很快(并且不在闪存驱动器上)。
您还可以这样做:
:设置目录=/dev/shm
:vi
然而,如果整个系统的闪存耗尽,系统崩溃后您将无法获得任何恢复选项。
您还可以将其放入从闪存启动/运行的系统上的 .vimrc 中:
设置目录=/dev/shm