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
コマンドモード時)
または%d
Exモードでは、コマンドラインの例:vim +%d foo.bar
。