viを使用してファイル内のすべての行を削除する方法は?

viを使用してファイル内のすべての行を削除する方法は?

viを使用してファイル内のすべての行を削除する方法は?

現在、私はファイルのすべての行を削除するために次のようなものを使用しています。

echo > test.txt

を使用してすべての行を削除する方法はvi

メモ: 使用するddのは良い選択ではありません。行が多い場合があります。

答え1

vi

:1,$d

すべての行を削除します。

:コマンドを紹介し、カーソルを一番下に移動します。次のコマンド()を実行する必要がある行を
示します。この場合、範囲は最初の行から最後の行までです(とマークされているため、文書の行数を知る必要はありません)。最後は、指定された行を削除することを示します。1,$d$
d

より短い形式(:%d)がありますが、私はそれをまったく使用しません。:1,$d「適応」が簡単になります。たとえば、:4,$-2d最初の3行と最後の2行だけを保持し、残りを削除します。

答え2

viで私は使う

:%d

どこ

  • :viにコマンドモードに入るように指示する
  • %すべての行を意味
  • d: 削除

コマンドラインで、

> test.txt

それもします。

dd質問がありますか?

dd if=/dev/null of=test.txt

どこ

  • /dev/null特殊な0バイトファイルです。
  • if入力ファイルです
  • of出力ファイルです

答え3

次のことをお勧めします(すべてのPOSIX互換シェルで動作する必要があります)。

> test.txt

本当にviにしたい場合は、次のようにします。

  • 1G(最初の行に移動)
  • dG(最後の行まで削除)

答え4

カーソルが最初の行にある場合(そうでない場合:ggまたは入力1G)、直接使用できますdG。現在の行からファイルの終わりまですべての行を削除します。したがって、ファイルからすべての行を削除するには、2つの行を混在させるだけです。 (ggdGコマンドモード時)

または%dExモードでは、コマンドラインの例:vim +%d foo.bar

関連:VIMで現在の行からファイルの終わりまですべてのテキストを削除する方法は?

関連情報