回答:
vi編集バッファーのデフォルトのディレクトリー(/ var / tmp)には、作業中のファイルのサイズの約2倍に相当するスペースが必要です。viはバッファー操作に余分な行を使用するためです。
/ var / tmpディレクトリーに編集バッファー用の十分なスペースがない場合(例えば、大きなファイルを使用している場合、またはシステムのスペースが不足している場合)
場合によっては、次のようなエラーメッセージも表示されます。
Not enough space in /var/tmp.
これを修正する方法については、http://kb.iu.edu/data/akqv.htmlをご覧ください。
Vimは大きなファイル用に設計されていません。ユーザーエクスペリエンスを大幅に低下させる特定の機能があります。たとえば、ファイルをメモリにロードします。これは基本的に、メモリサイズよりも小さいファイルの編集に制限されます。さらに、構文の強調表示、スワップファイル、元に戻すなどの機能は、大きなファイルでは非常に非効率的であり、処理がさらに遅くなります。もう1つの問題は、vim
行が長すぎないことです。ファイルに改行文字vim
がほとんど含まれていない場合、使用できなくなります。
そうは言っても、vim-largefileのような特定の設定を変更して大きなファイルをより効率的にするプラグインがありますが、最終的vim
に複数のGiBを投げても決してきびきびとはなりません。
一番下の行は、vim
大きなファイルには使用しないでください。(編集とは対照的に)大きなファイルを表示する場合は、を使用しますless
。パターンを検索する場合は、スラッシュを使用してパターンの検索を開始します。
/<pattern> # forward search
?<pattern> # backward search
出力をフィルタリングする場合は、アンパサンドを使用します。
&<pattern>
次に、を使用して連続出力を開始しshift-fます。で連続出力表示を終了し、ctrl-cフィルターパターンを調整またはキャンセルするか、検索を開始できます。
大きなファイルを編集するには、などのツールを使用しますsed
。これらは効率的で、まさにこの目的のために設計されています。
vi
(またはvim
そのことについて)大規模なファイルでは非常に遅く、多くの行末がない場合でも使用できない場合があります。さらに、ファイルはメモリに収まる必要があります。less
大きなファイルに使用すると、はるかに高速で、ログファイルの読み取り/監視に十分です。