132 votes

Comment éditer des fichiers texte de plusieurs gigaoctets? Vim ne fonctionne pas = (

Existe-t-il des éditeurs pouvant éditer des fichiers texte de plusieurs gigaoctets, peut-être en ne chargeant que de petites portions en mémoire à la fois? Il ne semble pas que Vim puisse le gérer = (

168voto

Aaron R. Points 538

Vim peut gérer de gros fichiers assez bien. J'ai juste modifié un 3,4 GO de fichiers, la suppression de lignes, etc. Trois choses à garder à l'esprit:

  1. Appuyez sur Ctrl-C: Vim essaie de lire le fichier en entier d'abord, à faire des choses comme la coloration syntaxique et le nombre de lignes dans le fichier, etc. Ctrl-C pour annuler cette énumération (et la coloration syntaxique), et il ne charge que ce qui est nécessaire à l'affichage sur votre écran.
  2. Readonly: Vim va probablement commencer à lire uniquement lorsque le fichier est trop grand pour elle de faire un . copie de fichier pour effectuer les modifications. J'ai dû w! pour enregistrer le fichier, et c'est quand il a pris le plus de temps.
  3. Aller à la ligne: en Tapant :115355 vous mènera directement à la ligne 115355, qui est beaucoup plus rapide d'aller dans les gros fichiers. Vim semble démarrer la numérisation depuis le début à chaque fois qu'il charge un tampon de lignes, et en la maintenant enfoncée la touche Ctrl-F pour parcourir le fichier semble être vraiment lent près de la fin de celui-ci.

80voto

Al pacino Points 415

Si vous êtes sur * nix (et en supposant que vous ne devez modifier que des parties de fichier (et rarement)), vous pouvez fractionner les fichiers (à l’aide de la commande split ), modifiez-les individuellement (à l’aide de awk , sed , ou quelque chose de similaire) et concaténez-les une fois que vous avez terminé.

 cat file2 file3 >> file1
 

79voto

michael Points 5990

Il peut s'agir de plugins qui l'étouffent. (coloration syntaxique, plis, etc.)

vous pouvez exécuter vim sans plugins.

 vim -u "NONE" hugefile.log
 

C'est minimaliste mais il vous donnera au moins les mouvements vi auxquels vous étiez habitué.

 syntax off
 

est une autre évidence. Élaguez votre installation et recherchez ce dont vous avez besoin. Vous saurez de quoi il est capable et si vous avez besoin d'accomplir une tâche par d'autres moyens.

15voto

RedBlueThing Points 21332

Vous voudrez peut-être consulter ce plug-in VIM qui désactive certaines fonctionnalités de vim dans l'intérêt de la rapidité lors du chargement de gros fichiers.

9voto

MBCook Points 8316

J'ai essayé de le faire, surtout avec des fichiers de 1 GO alors que j'ai besoin de faire quelques petits changements à un dump SQL. Je suis sur Windows, ce qui en fait l'un des principaux de la douleur. Il est sérieusement difficile.

La question évidente est: "pourquoi avez-vous besoin?" Je peux vous dire par expérience d'avoir à essayer plus d'une fois, vous avez probablement vraiment veulent essayer de trouver un autre moyen.

Alors, comment faites-vous? Il existe quelques façons que j'ai fait. Parfois, je peux obtenir vim ou nano pour ouvrir le fichier, et je peux les utiliser. C'est vraiment dur de la douleur, mais il fonctionne.

Lorsque cela ne fonctionne pas (comme dans votre cas), vous n'avez que quelques options. Vous pouvez écrire un petit programme pour faire les changements dont vous avez besoin (par exemple, recherche et remplace). Vous pouvez utiliser un programme en ligne de commande qui peuvent être en mesure de le faire (peut-être qu'il pourrait faire avec sed/awk/grep/etc?)

Si ceux-ci ne fonctionnent pas, vous pouvez toujours diviser le fichier en morceaux (quelque chose comme split être le choix évident, mais vous pouvez utiliser de la tête/queue pour obtenir de la partie que vous voulez), puis de modifier les partie(s) qui en ont besoin, et qui se retrouvent plus tard.

Confiance en moi, si, essayez de trouver un autre moyen.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X