RAMが16GBで、Vimが100MBのテキストファイルを開くことができないのはなぜですか?

RAMが16GBで、Vimが100MBのテキストファイルを開くことができないのはなぜですか?

100MBのMySQLデータベースバックアップファイルがあり、16G RAMを搭載したLinuxシステムのVimでファイルを開くのに問題があります。

Vimが停止します(少なくとも利用できません)。これは私が理解していないものです。 16GBのRAMがありますが、なぜエディタから100MBのファイルをロードできないのですか?

ビームのせいですか?すべてのメモリ管理はオペレーティングシステムによって処理されると思います。

答え1

Vimは、時々異常に長い行を持つファイルを処理するのに問題があります。これはテキストエディタなので、行の長さが通常最大数百文字に達するテキストファイル用に設計されています。

データベースファイルには改行文字が多くないため、100MBの長さの行になる可能性があります。 Vimはこれが気に入らないでしょうし、うまくいってもファイルをロードするのにかなり長い時間がかかるかもしれません。

私は開いた。テキスト100MBを超えるファイルを処理するには、Vimを使用してください。ファイルをメモリに一度にロードする必要もありません(Vimは必要に応じて変更をディスクに交換できるため)。

答え2

私の経験では、Vimは窒息しません。大容量ファイルしかし、時長いキュー。このコマンドを使用してmysqldump使用短い行犠牲に大きなファイル:

$ mysqldump --complete-insert -u -p

.vimrcまた、以下を使用してVimを開き、ファイルを解析するか、プラグインをロードしないように要求することもできます。

$ vim -u NONE output.sql

このようにVimをロードするとメモリ使用量が減り、多くのプラグインのようにVimはファイル全体を解析する必要はありません。

答え3

".vimrcとプラグインなしでVIMをロードする(VIMクリーンアップ)(たとえば、大容量ファイルの場合)

  gvim -u NONE -U NONE -N largefile.sql

答え4

Vimはファイルをそのままメモリにロードしません。内部構造(行、単語など)に変換し、内部スクリプト言語を使用して構文強調などを実行します。これはすべてメモリ(1文字あたり1バイト以上)とCPU時間を消費します。

関連情報