¿Puedo usar vim para abrir un archivo enorme de manera efectiva?

17

a veces necesito abrir un archivo de registro de varios GB, ahora necesito usar tail para obtener la parte adecuada, pero eso es muy tedioso.

¿Puedo usar vim para abrirlo directamente? Actualmente, vim ocupará mucha memoria al abrir un archivo grande ... ¿Me pregunto por qué es necesario? Si hay alguna opción puede evitar que se cargue esa memoria?

Carfield Yim
fuente

Respuestas:

13

Si solo quiere ver un archivo, use menos .

Si necesita recortar una parte específica del archivo, haga esto (dentro de menos ):

  1. Ve a la primera página que te interese

  2. Presione las teclas my a, esto significa: marque la posición a .

  3. Ve a la última posición del archivo que te interesa

  4. Presione las teclas |(tubería) y aesto significa: canalice todo entre aquí y coloque un comando

  5. Escriba el comando al que desea que se envíen los datos. Si desea copiar estos datos en el búfer del editor, simplemente use vim -como comando (el signo menos como nombre de archivo significa que el archivo a editar debe leerse desde stdin ).

Si sabe que necesitará todos los datos desde una posición específica hasta el final del archivo, también puede hacer esto:

  1. Ve a la primera página que te interese

  2. Presione las teclas |(canalización) y $, esto significa: canalice todo desde aquí hasta el final del archivo a un comando

  3. Escriba el comando al que desea que se envíen los datos (por ejemplo, cat >/tmp/myfileo vim -).

ktf
fuente
1
No sabía que lesspodía hacer esto. Gracias :)
icedwater
4

Mira esto y esto .

Básicamente, sus opciones son:

  1. Prueba el script Vim Large File . Inhabilita ciertas funciones para mejorar la capacidad de respuesta de Vim al editar archivos grandes.
  2. Divide el archivo en fragmentos más pequeños, edita el fragmento que te interesa y concatena nuevamente.
Dan Cruz
fuente
3

Sí, Vim puede abrir archivos muy grandes. Pero, para conservar la memoria, algunas cosas que probablemente debería tener en cuenta antes de hacerlo:

  • ignore el tipo de archivo (sin resaltado de sintaxis, etc.), aunque con toda probabilidad no tendrá sintaxis resaltada para los archivos de registro, pero solo para asegurarse de que no comience a pasar por ellos
  • noswapfile (definitivamente no quieres una copia de un archivo de ese tamaño)
  • bufhidden = descargar (guardar memoria cuando se ve otro archivo)
  • buftype = nowritefile (es de solo lectura)
  • niveles de deshacer = -1 (no es posible deshacer)

Tal vez haya una o dos opciones que perdí, pero estas están hasta ahora en mi _vimrc.

Torre
fuente
Tenga en cuenta que (1) hay un complemento ( vim.org/scripts/script.php?script_id=1506 ) para activar varias de estas opciones automáticamente cuando se abre un archivo grande e (2) incluso con este programa, abrir archivos que son más de un par de GB de tamaño aún puede ser problemático, por lo que recomiendo seguir el consejo "Ctrl-C" aquí: stackoverflow.com/a/19795855/1858225
Kyle Strand