Ubuntuを使用していますが、vi
エディタから100行をすべて削除しようとしましたが、コマンド1つでこれをしようと面接の質問にぶつかりました。
答え1
通常モードで実行
100dd
dd
現在の行を削除します。このコマンドを前に付けると100
100回繰り返されます。
現在の行から始まり、ファイルの行が100個未満の場合は、実装方法によってvi
行を削除できないか、すべての行を削除します。の場合、akaオプションがオンになっているかどうかvim
によって異なります。cp
compatible
答え2
現在行(含む)100行進む
dd(現在行削除)を100回繰り返します。
100dd
現在の行から最初の99行まで削除
d99j
現在行(含む)100行戻る
d99k
行番号で特定の範囲の行を削除する
:1,100d
現在の行から始めて行範囲を削除する
:.,.+99d
その他など
答え3
もしみんなファイルから行を削除するには、このviコマンドは削除範囲を指定します。
:1,$d
1
最初の行は
$
最後の行を意味します。
答え4
ファイルのどこにいても、次のことができます。ggdG
:%d
より少ない数のキーストロークでより良い結果が得られます。さて、shift
キーとキーを数えてみると、enter
実際には上記より2回以上のキーを押すことになります。
このようにすると100dd
削除されますに従って現在の場所から100行離れており、現在の行の場所によっては、ファイルからすべての行を削除できない場合があります。