Posso usare vim per aprire efficacemente un file enorme?


17

a volte ho bisogno di aprire un file di log da diversi GB, ora ho bisogno di usare tail per ottenere la parte adatta ma è molto noioso.

Posso semplicemente usare vim per aprirlo direttamente? Attualmente vim occuperà molta memoria quando apre un file di grandi dimensioni ... Ti chiedi perché è necessario? Se esiste qualche opzione che può impedire che la memoria sia caricata?

Risposte:


13

Se vuoi solo dare un'occhiata a un file, usa meno .

Se hai bisogno di ritagliare una parte specifica del file, fallo (in meno ):

  1. Vai alla prima pagina che ti interessa

  2. Premere i tasti me a- questo significa: contrassegnare la posizione a .

  3. Vai all'ultima posizione del file che ti interessa

  4. Premi i tasti |(pipe) e a- questo significa: pipe tutto tra qui e posiziona a un comando

  5. Digita il comando a cui desideri inviare i dati. Se vuoi copiare questi dati nel buffer dell'editor, usa semplicemente vim -come comando (il segno meno come nome file significa che il file da modificare deve essere letto dallo stdin ).

Se sai che avrai bisogno di tutti i dati da una posizione specifica fino alla fine del file, puoi anche farlo:

  1. Vai alla prima pagina che ti interessa

  2. Premi i tasti |(pipe) e $- questo significa: reindirizza tutto tra qui e la fine del file a un comando

  3. Digitare il comando al quale si desidera inviare i dati (ad es. cat >/tmp/myfileO vim -).


1
Non sapevo lesspotesse farlo. Grazie :)
icedwater

4

Dai un'occhiata a questo e questo .

Fondamentalmente, le tue opzioni sono:

  1. Prova lo script di file di grandi dimensioni Vim . Disabilita alcune funzionalità per migliorare la reattività di Vim durante la modifica di file di grandi dimensioni.
  2. Suddividi il file in blocchi più piccoli, modifica il blocco che ti interessa e concatenali di nuovo insieme.

3

Sì, Vim può aprire file molto grandi. Ma, per conservare la memoria alcune cose dovresti probabilmente tenere a mente prima di farlo:

  • ignora il tipo di file (nessuna evidenziazione della sintassi e così via), anche se con tutta probabilità non avrà alcuna sintassi per i file di registro, ma solo per essere sicuri che non inizi a superarli
  • noswapfile (sicuramente non vuoi una copia di un file di quelle dimensioni)
  • bufhidden = unload (salva memoria quando viene visualizzato un altro file)
  • buftype = nowritefile (è di sola lettura)
  • undolevels = -1 (non è possibile annullare)

Forse c'è un'opzione o due che mi sono perso, ma questi sono finora nel mio _vimrc.


Nota che (1) c'è un plugin ( vim.org/scripts/script.php?script_id=1506 ) per attivare automaticamente alcune di queste opzioni quando viene aperto un file di grandi dimensioni e (2) anche con questo programma, aprendo file che sono più di un paio di GB di dimensioni possono ancora essere problematici, quindi consiglio di seguire il suggerimento "Ctrl-C" qui: stackoverflow.com/a/19795855/1858225
Kyle Strand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.