単一のコマンドを使用してviエディタから100行を削除する

単一のコマンドを使用してviエディタから100行を削除する

Ubuntuを使用していますが、viエディタから100行をすべて削除しようとしましたが、コマンド1つでこれをしようと面接の質問にぶつかりました。

答え1

通常モードで実行

100dd

dd現在の行を削除します。このコマンドを前に付けると100100回繰り返されます。

現在の行から始まり、ファイルの行が100個未満の場合は、実装方法によってvi行を削除できないか、すべての行を削除します。の場合、akaオプションがオンになっているかどうかvimによって異なります。cpcompatible

答え2

  1. 現在行(含む)100行進む

    • dd(現在行削除)を100回繰り返します。

      100dd
      
    • 現在の行から最初の99行まで削除

      d99j
      
  2. 現在行(含む)100行戻る

    d99k
    
  3. 行番号で特定の範囲の行を削除する

    :1,100d
    
  4. 現在の行から始めて行範囲を削除する

    :.,.+99d
    

その他など

答え3

もしみんなファイルから行を削除するには、このviコマンドは削除範囲を指定します。

:1,$d

1最初の行は $最後の行を意味します。

答え4

ファイルのどこにいても、次のことができます。ggdG

:%dより少ない数のキーストロークでより良い結果が得られます。さて、shiftキーとキーを数えてみると、enter実際には上記より2回以上のキーを押すことになります。

このようにすると100dd削除されますに従って現在の場所から100行離れており、現在の行の場所によっては、ファイルからすべての行を削除できない場合があります。

関連情報