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


10

大きなログファイルを開くとき(まあ、ないこと、それがほぼ瞬時にそれらをロードするので、私はいつものVim使用してきた大規模な、しかし、80メガバイトは!テキストの多くはまだです)。Notepad、Notepad ++などの他のテキストエディタでは、ファイルの処理と読み込みに10秒以上かかります。これの理由は何ですか?何がVimをそんなに速くするのですか?


8
構文の強調表示をオンにして、vimの速度が低下することに驚かれる
Marco

11
近い投票者へ:この質問建設的であると私は主張します-回答が示すように、他の一部のエディターよりも大きなファイルでそれをより効率的にするVimが使用するテクニックがあります。これは具体的な答えであり、事実/参照によってサポートできます。そして、なぜ人々がこれをローカライズされたものと考えることができるのかわかりません。エディターがファイルを処理する方法には明らかな違いがあり、狭い地理的領域、特定の瞬間、または非常に狭い状況よりも大きな影響を与えます。
ボブ

1
@ボブ-私はこの質問への答えがどのように問題を解決するかを見ることができません。
ニフレ

回答:


16

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

1つは、必要なものだけを操作することです。つまり、行全体のカウント、幅の測定、単語の折り返し、構文の強調表示、XML検証、HTMLレンダリング、元に戻すなどのファイル全体を解析しようとしないことです。Vimには、Vimの多くの機能を無効にするLargeFileプラグインがあります。 「ユーザーが定義した」「大きい」ファイルが開かれたとき。Vimのwikiにある大きなファイル高速読み込みのページでは、無効化された機能の一部について言及しています。他にも変更点がありますが、速度よりもメモリの節約を目的としているようです。

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

これらはおそらく最大の2つですが、それ以外にも確かにあります。


これらの手法のいずれかを使用したvimのリファレンスはありますか?
slhck 2012

特にメモリマッピングについてコメントすることはできませんが、最初のものは間違いなく実行できます。今後の編集。
afrazier

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.