ほとんどの場合、vim を停止させる構文プラグインです。Mbs-Gbs のファイルで問題が発生したことはありません。私が誤っていくつかの - あまりよくない - ファイルタイプでそれらを開かない限り。
ロード/ハング中に ^C を押します (プラグインの中断)
:syntax off
トリックを行います。完全に「同期された」構文の強調表示なしでファイルを操作しやすくする構文には、他のオプションがあります。
私はこれをもう少しいじってみましたが、実際にプラグインのいくつかが (非常に) 大きなファイルの操作を非常に遅くすることがわかりました. 私は楽しみのためにこれをしました:
大きな入力ファイル (~600Mb) の場合:
$ wc input.txt.full
2674568 2674568 608825278 input.txt.full
次の調整を加えて vim を起動しました。
vim -u NONE -n +'se nonu nowrap ul=-1 | syn off' input.txt.full
これに注意してください
-u NONE
初期化 (ユーザー) スクリプトとプラグインの実行を防止します
-n
スワップファイルの書き込みを無効にします (低速/小さいディスクでは非常に重要です)
se nonu nowrap ul=-1
無効にする
- 行番号付け
- ラインラッピング
- 履歴を元に戻す (
undolevels
負の値に設定)
基本的に、多くの CPU やメモリを必要とするすべてのもの
syn off
構文の強調表示を無効にします (ファイルの種類に対して構文の強調表示が有効になっている場合にのみ違いが生じるはずです)。
ここで、行自体の各行を複製したかった (グローバル: 行をコピーし、前のものと結合する):
:g/^/t.|-j
残念ながら、ファイルは使用可能なメモリ (~3Gb) 1に対して大きくなりすぎるため、最初の 20% (~535,000 行) を処理することにしました。
:exec "norm 20%"|1,.g/^/t.|-j
これは「一瞬」で問題なく機能します。手動ナビゲーション(ジャンプ、スクロール、モード切り替え、検索など)は反応が良いようです。
コマンドライン ベンチマーク:
$ xxd -c 44 /dev/urandom | head -n 3800000 > input.txt.full
$ wc input.txt.full
3800000 91820644 627000000 input.txt.full
$ time vim -u NONE -n +'se nonu nowrap ul=-1 | syn off' input.txt.full +'exec "norm 10%"|1,.g/^/t.|-j' +wq
real 0m7.778s
user 0m6.680s
sys 0m0.952s
$ wc input.txt.full
3800000 101002757 689940307 input.txt.full
(注意してください689940307 ÷ 627000000 = 110.03 %
、それは正確に正しいです)。
これは私の本では遅くありません。比較のために、wc
呼び出し自体 にかかる時間は同じです(7.7 秒)。
1tmpfs
キャッシュの違いを避けるためすべてのテストが実行されまし