Existem editores que podem editar arquivos de texto de vários gigabytes, talvez carregando apenas pequenas partes na memória de uma vez? Não parece que o Vim pode lidar com isso = (
Existem editores que podem editar arquivos de texto de vários gigabytes, talvez carregando apenas pequenas partes na memória de uma vez? Não parece que o Vim pode lidar com isso = (
Respostas:
Se você estiver em * nix (e supondo que você tem que modificar somente partes do arquivo (e raramente)), você pode dividir os arquivos (usando o split
comando), editá-los individualmente (usando awk
, sed
ou algo similar) e concatenar-los depois de estão prontos.
cat file2 file3 >> file1
Ctrl-C interromperá o carregamento do arquivo. Se o arquivo for pequeno o suficiente, você pode ter tido a sorte de carregar todo o conteúdo e simplesmente eliminar todas as etapas de pós-carregamento. Verifique se todo o arquivo foi carregado ao usar esta dica.
O Vim pode lidar muito bem com arquivos grandes. Acabei de editar um arquivo de 3,4 GB, excluindo linhas, etc. Três coisas para manter em mente:
:115355
o levará diretamente para a linha 115355, que é muito mais rápida em arquivos grandes. O Vim parece começar a escanear do início toda vez que carrega um buffer de linhas, e manter pressionado Ctrl-F para escanear o arquivo parece ficar muito lento perto do fim.Nota - Se a sua instância do Vim estiver somente leitura porque você pressionou Ctrl-C, é possível que o Vim não carregue o arquivo inteiro no buffer. Se isso acontecer, salvá-lo salvará apenas o que está no buffer, não o arquivo inteiro . Você pode verificar rapidamente com um G
para pular para o final e certificar-se de que todas as linhas do arquivo estão lá.
Podem ser plug-ins que estão causando a obstrução. (destaque de sintaxe, dobras, etc.)
Você pode executar o vim sem plug-ins.
vim -u "NONE" hugefile.log
É minimalista, mas pelo menos vai lhe dar os movimentos vi que você está acostumado.
syntax off
é outro óbvio. Remova sua instalação e forneça o que você precisa. Você descobrirá do que ele é capaz e se precisa realizar uma tarefa por outros meios.
Uma ligeira melhoria na resposta dada por @Al pachio com a solução split + vim, você pode ler os arquivos com um glob, efetivamente usando pedaços de arquivo como buffer, por exemplo
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
Você pode querer verificar este plugin VIM que desabilita certos recursos do vim para aumentar a velocidade ao carregar arquivos grandes.
Tentei fazer isso, principalmente com arquivos em torno de 1 GB, quando precisei fazer algumas pequenas alterações em um dump SQL. Estou no Windows, o que o torna um grande problema. É muito difícil.
A pergunta óbvia é "por que você precisa?" Posso dizer por experiência própria, tendo que tentar isso mais de uma vez, você provavelmente deseja realmente tentar encontrar outra maneira.
Então como você faz isso? Existem algumas maneiras de fazer isso. Às vezes consigo fazer o vim ou o nano abrir o arquivo e posso usá-los. É uma dor muito forte, mas funciona.
Quando isso não funcionar (como no seu caso), você tem apenas algumas opções. Você pode escrever um pequeno programa para fazer as alterações de que precisa (por exemplo, pesquisar e substituir). Você pode usar um programa de linha de comando que pode fazer isso (talvez pudesse ser feito com sed / awk / grep / etc?)
Se isso não funcionar, você sempre pode dividir o arquivo em partes (algo como dividir sendo a escolha óbvia, mas você pode usar head / tail para obter a parte que deseja) e, em seguida, editar as partes que precisam, e recombinar mais tarde.
Confie em mim, tente encontrar outra maneira.
Estou usando o vim 7.3.3 no Win7 x64 com o plug-in LargeFile de Charles Campbell para lidar com arquivos de texto simples de vários gigabytes. Funciona muito bem.
Eu espero que você venha bem.
Nossa, nunca consegui fazer o vim engasgar, mesmo com um ou dois GB. Ouvi dizer que UltraEdit (no Windows) e BBEdit (no Macs) são ainda mais adequados para arquivos ainda maiores, mas não tenho experiência pessoal.
No passado, eu abri um arquivo de 3 GB com esta ferramenta http://csved.sjfrancke.nl/
Pessoalmente, gosto do UltraEdit . Aqui está seu pequeno discurso sobre arquivos grandes .
A única coisa que consegui usar para algo assim é meu editor hexadecimal favorito do Mac, 0XED. No entanto, isso foi com arquivos que considerei grandes, com dezenas de megabytes. Não tenho certeza de quão longe isso irá. Tenho quase certeza de que ele carrega apenas partes do arquivo na memória de uma vez.