web-dev-qa-db-ja.com

Vimが他のテキストエディタよりも速く大きなファイルを開くことができるのはなぜですか?

大きなログファイルを開くとき(まあ、that大きいわけではありませんが、80mbはまだたくさんのテキストです!)、ほぼ瞬時に読み込まれるため、私は常にVimを使用していました。メモ帳、メモ帳++などの他のテキストエディタは、ファイルの処理と読み込みに10秒以上かかります。これの理由は何ですか?何がVimをそんなに速くするのですか?

10
Anonymous

編集者が大きなファイルの処理を最適化するために使用できるトリックは多数あります。

1つは、必要なものだけを処理することです。つまり、行のカウント、幅の測定、ワードラップ、構文の強調表示、XML検証、HTMLレンダリング、元に戻すなどのためにファイル全体を解析しようとしないことを意味します。Vimで使用できる LargeFile Plugin があります。 「大きな」(ユーザーが定義した)ファイルを開くと、Vimの多くの機能が無効になります。 大きなファイルの読み込みを高速化 Vimのwikiのページには、無効になっている機能のいくつかが記載されています:ファイルタイプを無視する(構文の強調表示/解析用)、元に戻すを無効にする、読み取り専用モードに切り替える。他にも変更がありますが、速度よりもメモリの節約を目的としているようです。

もう1つはメモリマッピングです。ファイル全体をメモリに読み込む代わりに、基になるOSに、ファイルのビューをプロセスのメモリ空間に直接マップするように指示します。特にVimがこれを行うかどうかはわかりませんが、他の編集者はこれを行うことができます。

それらはおそらく最大の2ですが、確かにもっとあります。

16
afrazier