这真的很奇怪。每次我在插入模式下输入时,我都会听到磁盘访问的声音。而 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 配置不会导致此行为,因此您应该重新考虑对系统配置所做的任何优化。