2010-03-12 59 views
2

我的整个源代码库是< 20MB。 我希望它在后台加载到内存中。所以,当我做vimgrep **/*。cpp **/*。cxx **/*。hpp时,它不会执行文件IO,因为vim已经将所有文件加载到内存中了。Vim,vimgrep和文件缓存

我该如何做到这一点?

Thakns!

+0

我会建议您检查出'ack':http://betterthangrep.com – 2010-03-12 21:38:24

回答

2

如果在执行:vimgrep时文件已经加载到缓冲区中,则vim将搜索缓冲区而不是磁盘上的文件,以便您可以启动Vim在命令行上的所有文件:

$ vim *.cpp *.cxx *.hpp 
... vim loads... 
:vimgrep /stuff/ *.cpp *.hpp 
1

将您的文件复制到ramfs分区(易失性),并在那里做你的事情。并且不要忘记将处理过的文件复制回非易失性分区

+0

这只是使IO速度快,但它仍然是通过内核的文件会IO接口。这比读取旋转磁盘更好,但不如将结果缓存到要使用它们的程序中。而且,内核的缓存机制很有可能比你更好地处理这个问题,而且你不需要记住要保存回永久存储。 RAM磁盘的速度通常是克服操作系统缓存机制不足的一个窍门。 – dmckee 2010-03-12 22:33:36

+0

的确如此,ramdisk是最快的方式,可以为最广泛的用例提供类似的功能,在10%的努力中获得90%的价值。 – 2010-03-13 12:43:08