Posso usar o vim para abrir um arquivo enorme de maneira eficaz?
17
em algum momento eu preciso abrir um arquivo de log de vários GB, agora preciso usar o tail para obter a parte adequada, mas isso é muito entediante.
Posso apenas usar o vim para abri-lo diretamente? Atualmente, o vim ocupa muita memória ao abrir um arquivo grande ... Basta saber por que é necessário? Se houver alguma opção pode impedir que a memória seja carregada?
Se você quiser apenas dar uma olhada em um arquivo, use menos .
Se você precisar cortar uma parte específica do arquivo, faça o seguinte (dentro de menos ):
Vá para a 1ª página na qual você está interessado
Pressione as teclas me a- isto significa: marque a posição a .
Vá para a última posição do arquivo em que você está interessado
Pressione as teclas |(canal) e a- isto significa: canalize tudo entre aqui e posicione a em um comando
Digite o comando para o qual você deseja que os dados sejam enviados. Se você deseja copiar esses dados no buffer do editor, use apenas o vim -comando (o sinal de menos como nome do arquivo significa que o arquivo a ser editado deve ser lido pelo stdin ).
Se você souber que precisará de todos os dados de uma posição específica até o final do arquivo, faça também o seguinte:
Vá para a 1ª página na qual você está interessado
Pressione as teclas |(canal) e $- isto significa: canalize tudo entre aqui e o final do arquivo para um comando
Digite o comando para o qual você deseja que os dados sejam enviados (por exemplo, cat >/tmp/myfileou vim -).
Sim, o Vim pode abrir arquivos muito grandes. Mas, para economizar memória, algumas coisas você deve ter em mente antes de fazer isso:
ignore o tipo de arquivo (sem realce de sintaxe e assim por diante), embora com toda a probabilidade não tenha nenhuma marcação de sintaxe para arquivos de log, mas apenas para ter certeza de que não começará a passar por eles
noswapfile (você definitivamente não quer uma cópia de um arquivo desse tamanho)
bufhidden = descarregar (economize memória quando outro arquivo for exibido)
buftype = nowritefile (é somente leitura)
undolevels = -1 (não é possível desfazer)
Talvez haja uma ou duas opções que eu perdi, mas essas estão tão longe no meu _vimrc.
Observe que (1) existe um plug-in ( vim.org/scripts/script.php?script_id=1506 ) para ativar várias dessas opções automaticamente quando um arquivo grande é aberto e (2) mesmo com esse programa, abrindo arquivos que são mais do que um par GB de tamanho ainda pode ser problemático, por isso eu recomendo seguir a ponta "Ctrl-C" aqui: stackoverflow.com/a/19795855/1858225
less
poderia fazer isso. Obrigado :)Confira isso e isso .
Basicamente, suas opções são:
fonte
Sim, o Vim pode abrir arquivos muito grandes. Mas, para economizar memória, algumas coisas você deve ter em mente antes de fazer isso:
Talvez haja uma ou duas opções que eu perdi, mas essas estão tão longe no meu _vimrc.
fonte