2010-03-12 6 views
2

Toute la base de mon code source est < 20MB. Je veux tout chargé en mémoire en arrière-plan. Alors que quand je fais vimgrep **/*. Cpp **/*. Cxx **/*. Hpp, il ne faut pas faire le fichier IO puisque vim a déjà chargé tous les fichiers dans la mémoire.Vim, vimgrep et la mise en cache des fichiers

Comment puis-je y parvenir?

Thakns!

+0

Je recommande de vérifier 'ack': http://betterthangrep.com –

Répondre

2

Si un fichier est déjà chargé dans un tampon lorsque vous faites :vimgrep alors vim va chercher le tampon au lieu du fichier sur le disque, donc vous pouvez commencer vim avec tous les fichiers sur la ligne de commande:

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

Copiez vos fichiers sur une partition de ramfs (volatile) et faites votre travail là-bas. et n'oubliez pas de recopier les fichiers traités sur une partition non volatile

+0

Cela rend juste le rapide IO, mais il va toujours dans le dossier du noyau Interface IO. C'est mieux que de lire un disque tournant, mais pas aussi bien que de mettre en cache les résultats dans le programme qui va les utiliser. De plus, il y a de fortes chances que le mécanisme de mise en cache du noyau puisse gérer cela mieux que vous, et sans avoir besoin de vous rappeler de sauvegarder dans un stockage persistant. Le disque RAM pour la vitesse est généralement un hack pour surmonter un mécanisme de mise en cache du système d'exploitation défectueux. – dmckee

+0

Si vrai que cela soit, les disques virtuels sont à peu près le moyen le plus rapide de tirer quelque chose comme ça pour le plus grand nombre de cas d'utilisation, obtenant 90% de la valeur pour 10% de l'effort. –

Questions connexes