Eu tenho um arquivo de backup de banco de dados MySQL de 100 MB e tenho problemas para abri-lo no Vim na minha caixa Linux com 16G de RAM.
O Vim simplesmente trava (pelo menos inutilizável). Isso é algo que eu não entendo. Tenho 16 GB de RAM, por que não consigo carregar um arquivo de 100 MB em um editor?
É por causa do Vim? Eu pensei que todo o gerenciamento de memória é tratado pelo sistema operacional.
hexer
.Respostas:
Às vezes, o Vim tem problemas com arquivos com linhas longas incomumente. É um editor de texto, desenvolvido para arquivos de texto, com comprimentos de linha que geralmente têm no máximo algumas centenas de caracteres.
Um arquivo de banco de dados pode não conter muitos caracteres de nova linha; portanto, é possível que seja uma única linha longa de 100 Mb. O Vim não ficará satisfeito com isso e, embora provavelmente funcione, pode levar muito tempo para carregar o arquivo.
Certamente abri arquivos de texto muito maiores que 100 Mb com o Vim. O arquivo nem precisa caber na memória de uma só vez (já que o Vim pode trocar as alterações no disco, conforme necessário).
fonte
set synmaxcol=120
(ou algum outro número apropriado). Eu notei enormes acelerações disso no passado.Na minha experiência, o Vim engasga não com arquivos grandes , mas com longas filas . Use este comando para
mysqldump
usar linhas mais curtas à custa de um arquivo maior :Além disso, você pode abrir o Vim e solicitar que ele não analise seu
.vimrc
arquivo ou carregue plugins com este comando:Carregar o Vim dessa maneira consumirá menos memória e não exigirá que o Vim analise o arquivo inteiro como muitos plugins.
fonte
"carrega o VIM sem .vimrc e plugins (VIM limpo), por exemplo, para arquivos ENORMES
fonte
Tente usar em
less
vez devim
se você deseja visualizar um arquivo grande diretamente. O Vim tenta fazer muitas coisas diferentes quando é carregado pela primeira vez - varrendo o arquivo (potencialmente em várias passagens) para tentar determinar qual sintaxe usar, realçando a sintaxe e procurando modelines na parte superior e inferior do arquivo. Então, enquanto você edita o arquivo, o vim salva os arquivos de troca e mantém as árvores de desfazer (o histórico de desfazer no vim é ramificado, não linear como em todo (?) Outro editor) e reavalia constantemente a realce da sintaxe conforme o texto muda, etc.Nada disso é necessariamente uma justificativa para o porquê de ser tão inutilizável com arquivos gigantes, mas é mais uma explicação de algumas das razões pelas quais é.
fonte
O Vim não carrega apenas o arquivo como está na memória. Ele o converte em estruturas internas (linhas, palavras, etc.), executa o realce da sintaxe usando uma linguagem de script interna e assim por diante; tudo isso consome memória (muito mais que um byte para um personagem) e tempo de CPU.
fonte
Você pode tentar carregá-lo como um binário. Eu tive sorte com isso em arquivos realmente grandes, sem texto
Também é possível que o IIRC use o vim como um editor hexadecimal, consulte: http://usevim.com/2012/06/20/vim-binary-files/
fonte
Esperamos que seu problema esteja mais relacionado aos VIMs que precisam de arquivos temporários (como swap) mais que RAM.
Em muitos casos, os arquivos temporários criados pelo VIM estão no mesmo diretório do arquivo que você está abrindo. Se esse for o seu caso, você poderá verificar verificando o espaço em disco disponível no diretório atual.
Felizmente, há uma boa documentação sobre como você pode especificar um local diferente para os arquivos de indexação / troca do VIM:
Você também pode desativar o arquivo de troca
fonte
Ocasionalmente, abro backups grandes de bancos de dados no formato de texto .sql. Arquivos muito grandes, ou arquivos com linhas muito longas, às vezes parecem levar muito tempo para serem abertos no vim. Isso pode estar relacionado ao processamento de sintaxe e ao destaque de cores, conforme mencionado nas respostas de @zzapper e @demonkoryu.
Uma solução rápida pode ser pressionar "control-G" durante o carregamento do arquivo para cancelar a sintaxe, destacando o pré-processamento.
fonte