Posso usar o vim para abrir um arquivo enorme efetivamente?

15

em algum momento eu preciso abrir um arquivo de log de vários GB, agora eu preciso usar o tail para obter parte adequada, mas isso é muito entediante.

Posso simplesmente usar o vim para abri-lo diretamente? Atualmente o vim ocupará muita memória quando abrir um arquivo grande ... Basta saber por que é necessário? Se alguma opção pode impedir que a memória seja carregada?

    
por Carfield Yim 14.10.2011 / 12:49

3 respostas

12

Se você quiser apenas dar uma olhada em um arquivo, use menos .

Se você precisar recortar uma parte específica do arquivo, faça isso (em menos ):

  1. Ir para a primeira página em que está interessado

  2. Pressione as teclas m e a - isto significa: marca a posição a .

  3. Ir para a última posição do arquivo em que você está interessado

  4. Pressione as teclas | (pipe) e a - isto significa: canaliza tudo entre aqui e posiciona a em um comando

  5. Digite o comando para o qual você deseja que os dados sejam enviados. Se você quiser copiar estes dados para o buffer do editor, use apenas o comando vim - as (o sinal de menos como nome do arquivo significa que o arquivo a ser editado deve ser lido de stdin ).

Se você souber que precisará de todos os dados de uma posição específica até o final do arquivo, também poderá fazer isso:

  1. Ir para a primeira página em que está interessado

  2. Pressione as teclas | (pipe) e $ - isto significa: canaliza tudo entre aqui e o final do arquivo para um comando

  3. Digite o comando para o qual você deseja que os dados sejam enviados (por exemplo, cat >/tmp/myfile ou vim - ).

por 14.10.2011 / 13:24
3

Confira este e esta .

Basicamente, suas opções são:

  1. Dê ao Vim Grande Arquivo script a experimentar. Ele desativa certos recursos para melhorar a capacidade de resposta do Vim ao editar arquivos grandes.
  2. Divida o arquivo em pedaços menores, edite o pedaço que você gosta e concatena-los juntos novamente.
por 14.10.2011 / 14:39
3

Sim, o Vim pode abrir muito arquivos grandes. Mas, para conservar a memória, algumas coisas que você provavelmente deve ter em mente antes de fazer isso:

  • ignorar filetype (sem realce de sintaxe e assim por diante), embora com toda a probabilidade não haja mais sintaxe para arquivos de log, mas apenas para ter certeza de que não comece a passar por eles
  • noswapfile (você definitivamente não quer uma cópia de um arquivo desse tamanho)
  • bufhidden = unload (economiza memória quando outro arquivo é visualizado)
  • buftype = nowritefile (é somente leitura)
  • undolevels = -1 (não é possível desfazer)

Talvez haja uma opção ou duas que eu perdi, mas estas estão tão longe no meu _vimrc.

    
por 14.10.2011 / 15:33

Tags