2010-03-12 68 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