Bien que nous ayons reçu l'ordre de ne pas le faire, un de mes collègues a utilisé vi pour afficher un gros fichier texte (server.log 3,5 Go). Cela a rempli / var / tmp et a causé des problèmes sur le serveur.
Qu'est-ce qui a causé ça? Pourquoi ne devrions-nous pas utiliser vi pour les gros fichiers?
vi
(ouvim
d'ailleurs) est sacrément lent sur les gros fichiers et peut même être inutilisable s'il n'y a pas beaucoup de fins de ligne. De plus, le fichier doit tenir dans la mémoire. Utiliséless
pour les fichiers volumineux, il est beaucoup plus rapide et souvent suffisant pour lire / regarder les fichiers journaux.Réponses:
Le répertoire par défaut (/ var / tmp) du tampon d'édition de vi a besoin d'un espace égal à environ deux fois la taille du fichier avec lequel vous travaillez, car vi utilise les lignes supplémentaires pour la manipulation du tampon.
Si le répertoire / var / tmp n'a pas assez d'espace pour le tampon d'édition (par exemple, vous travaillez avec un gros fichier ou le système manque d'espace)
parfois, vous recevrez également le message d'erreur suivant comme celui-ci
Vous pouvez lire comment résoudre ce problème ici: http://kb.iu.edu/data/akqv.html
la source
Vim n'a pas été conçu pour les gros fichiers. Il a certaines fonctionnalités qui ralentissent considérablement l'expérience utilisateur. Par exemple, il charge le fichier en mémoire, ce qui limite essentiellement la modification de fichiers inférieurs à la taille de votre mémoire. De plus, des fonctionnalités telles que la coloration syntaxique, l'échange de fichiers et l'annulation sont très inefficaces avec des fichiers volumineux et ralentissent encore plus les choses. Un autre problème est que les
vim
attentes ne sont pas trop longues. Si un fichier contient quelques caractères de nouvelle lignevim
devient inutilisable.Cela dit, il existe des plugins comme vim-largefile qui modifient des paramètres particuliers pour être plus efficaces avec des fichiers volumineux, mais à la fin
vim
ne seront jamais accrocheurs lorsque vous lancez plusieurs Gio.L'essentiel est de ne pas utiliser
vim
sur de gros fichiers. Si vous souhaitez afficher (contrairement à modifier) des fichiers volumineux, utilisezless
. Si vous souhaitez rechercher un motif, utilisez une barre oblique pour lancer la recherche d'un motif:Si vous souhaitez filtrer la sortie, utilisez une esperluette:
Démarrez ensuite la sortie continue à l'aide de shift-f. Vous pouvez quitter l'affichage de sortie en continu avec ctrl-cet affiner ou annuler votre modèle de filtre ou lancer une recherche.
Pour modifier des fichiers volumineux, utilisez des outils tels que
sed
, ils sont efficaces et conçus à cet effet.la source