VIMで現在の行からファイルの終わりまでのすべてのテキストを削除するにはどうすればよいですか?


213

非常に大きなファイル(10Gb以上)があります。ファイルの先頭から数行だけ必要です。(vimで)ファイルの残りの部分(現在の行からファイルの終わりまで)を削除することは可能ですか?


12
私はあなたがVimを使いたいけど、ように私は、シェルコマンドを実行したい: head -n <number_of_lines> <filename> > <truncated_filename> どこで-nあなたは上から望むラインの数のパラメータである
EhevuTov

回答:


365

dG 現在の行からファイルの終わりまで削除します

dCtrl+ Endカーソルからファイルの末尾までを削除します

しかし、このファイルがあなたが言うほど大きい場合は、headファイルを編集して保存するよりも、最初の数行を読む方がよいでしょう。

head hugefile > firstlines

(Windowsを使用している場合は、Win32ポートを使用できますhead


17
headたとえばhead -n20 hugefile、最初の20行に対して、何行を指定するかを指定できます。10のNデフォルト
drevicko

3
の動機が必要headですか?大きなファイル(1G +)でdGを使用すると、時間がかかります(たとえば、5分)。
BurninLeo

3
逆を探している人のために、dgg現在の行からファイルの先頭まで削除します。
stevesliva 2017

d Ctrl + Endが機能しませんでした。d Shift + Endでカーソルから行末まで削除されました。
ライトウィング


30

:.,$d

これにより、現在の行からファイルの最後までのすべてのコンテンツが削除されます。これは、テストベクトルの生成またはストリッピングを処理するときに非常に役立ちます。


2
開始行をより詳細に制御したいので、次のように使用します。:<line number>,$d例::3,$d行3からファイルの終わりまで削除します
emont01

0

別の方法を追加します。通常モードで、ctrl+v次にGと入力し、残りを選択してからD、効果的ではないと思います。Linuxでは、@ Ed Guinessのように、head -n 20> filenameを実行する必要があります。

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