在 Vim 中,每次输入都会引起磁盘活动

在 Vim 中,每次输入都会引起磁盘活动

这真的很奇怪。每次我在插入模式下输入时,我都会听到磁盘访问的声音。而 gedit 则不是这种情况。我的系统是 ubuntu 10.10。有什么想法吗?

答案1

可能是交换文件。要查找当前 Vim 缓冲区使用的交换文件的名称,请执行

:swapname

然后,要测试该文件是否在每次击键时都被修改,您可以打开另一个终端窗口并执行

$ watch ls -l swapfile

在哪里交换文件是上述命令返回的文件名:swapname。然后在 Vim 中输入时观察文件的修改时间。

开始编辑:尝试了上述方法后,我发现ls -l分辨率不够,默认的 2 秒采样间隔watch有点长。查看交换文件修改时间变化的更好命令是:

$ watch -n 1 stat -c "%y" swapfile

结束编辑

交换文件更新之间的时间由“updatetime”选项设置,您可以通过执行以下命令确定其值(以毫秒为单位)

:set updatetime?

不幸的是,同一个计时器用于触发 CursorHold 自动命令,并且一些插件将“updatetime”设置为大约 100 毫秒,以便在用户击键后快速响应。如果您发现“updatetime”的值小于其默认值 4000,您可以执行

:verbose set updatetime?

找出它被设置在哪里。然后,您可以决定设置它的插件提供的功能是否值得您不断访问磁盘。

答案2

您的磁盘设置可能不正确。vim 中的任何活动都会更新交换文件,但除非定期刷新,否则不应将此信息刷新到磁盘。10.10 中的默认磁盘和 vim 配置不会导致此行为,因此您应该重新考虑对系统配置所做的任何优化。

相关内容