Aunque se nos indicó que no lo hiciéramos, un colega mío usó vi para ver un archivo de texto grande (server.log 3.5 GB). Esto llenó / var / tmp y causó algunos problemas en el servidor.
¿Qué causó esto? ¿Por qué no deberíamos usar vi para archivos grandes?
vi
(ovim
para el caso) es muy lento en archivos grandes e incluso puede ser inutilizable si no hay muchos extremos de línea. Además, el archivo debe caber en la memoria. Úseloless
para archivos grandes, es mucho más rápido y a menudo suficiente para leer / ver archivos de registro.Respuestas:
El directorio predeterminado (/ var / tmp) para el búfer de edición vi necesita un espacio equivalente al doble del tamaño del archivo con el que está trabajando, porque vi usa las líneas adicionales para la manipulación del búfer.
Si el directorio / var / tmp no tiene suficiente espacio para el búfer de edición (por ejemplo, está trabajando con un archivo grande o el sistema se está quedando sin espacio
Algunas veces puede recibir, recibirá el siguiente mensaje de error como este también
Puede leer sobre cómo solucionar esto aquí: http://kb.iu.edu/data/akqv.html
fuente
Vim no fue diseñado para archivos grandes. Tiene ciertas características que ralentizan drásticamente la experiencia del usuario. Por ejemplo, carga el archivo en la memoria, lo que básicamente limita la edición de archivos más pequeños que el tamaño de la memoria. Además, características como el resaltado de sintaxis, el intercambio de archivos y el deshacer son muy ineficientes con archivos grandes y ralentizan aún más. Otro problema es que
vim
no se esperan colas demasiado largas. Si un archivo contiene pocos caracteres de nueva líneavim
queda inutilizable.Dicho esto, hay complementos como vim-largefile que cambian configuraciones particulares para ser más eficientes con archivos grandes, pero al final
vim
nunca serán rápidos cuando le arrojas varios GiBs.La conclusión es que no lo use
vim
en archivos grandes. Si desea ver (en contraste con editar) archivos grandes, useless
. Si desea buscar un patrón, use una barra para iniciar una búsqueda de un patrón:Si desea filtrar la salida, utilice un ampersand:
Luego comience la salida continua usando shift-f. Puede salir de la pantalla de salida continua con ctrl-cy refinar o cancelar su patrón de filtro o iniciar una búsqueda.
Para editar archivos grandes, use herramientas como
sed
, son eficientes y están diseñadas para este mismo propósito.fuente