1

VIM で特定の範囲の行のみを保持する方法があるかどうか疑問に思っていました。つまり、ファイル内の行 1:20 のみを保持し、それ以外はすべて破棄したいとします。1 行目から 20 行目と 40 行目から 60 行目を保持したいのですが、これを行う方法はありますか?

手動で削除せずにこれを行う方法はありますか?

4

4 に答える 4

3

(コメントから理解したように)バッファの(異なる)部分を新しいファイルとして保存したい場合は、元のファイルを変更するのではなく、フラグメントを別のファイルとして書き込むのが最善です。:write実際、Vi(m) はこれをうまくサポートしています。これは、コマンドに範囲を渡すだけでよいためです。

:1,20w newfile1
:40,60w newfile2

追加も機能します:

:40,60w >> newfile1
于 2013-08-02T12:55:24.283 に答える
1

目的を達成する方法は 1 つだけではありません。

  • この質問が本当にファイルの最初の行に関するものである場合:
    head -20 <filename> > newfile

  • それがvimソリューションである場合:
    :21ENTER
    dG

  • ただし、大きなファイルを小さな断片に分割したいとおっしゃいましたこのためのツールは次のsplitとおりです。ファイルを偶数行数または偶数サイズのチャンクに分割できます。

于 2013-08-02T11:19:04.020 に答える