web-dev-qa-db-ja.com

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

私はUbuntuを使用していて、viエディターから100行すべてを削除しようとしていますが、これを1つのコマンドで実行するというインタビューの質問を受けました。

35
mayur Mehta

通常モードでは、

100dd

ddは現在の行を削除します。そのコマンドの前に100を指定すると、100回繰り返されます。

viの実装に応じて、ファイルの現在の行から始まる行が100行未満の場合、削除に失敗するか、削除することができます。 vimの場合、cp aka compatibleオプションがオンかどうかによって異なります。

65
200_success
  1. 現在の行から100行を削除(含む)

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

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

      d99j
      
  2. 現在の行から(含む)100行後方に削除

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

    :1,100d
    
  4. 現在の行で始まる範囲の行を削除する

    :.,.+99d
    

などなど.

46
Useless

allファイルの行を削除する場合、このviコマンドは削除の範囲を指定します。

:1,$d

1は最初の行を示し、$は最後の行を示します

8
suspectus

ファイルのすべての行を削除しますか? viでファイルを開きます。最初の行の先頭-ファイルを開いたときのカーソルのデフォルト位置-を押している間 Esc に続く dG

注意してください、アクションdは削除を示し、Gはファイルの最終行を示します。したがって、任意の行で dG、現在の行から最後の行までをすべて削除します。

削除する連続する行がわかっている場合(たとえば、101行目から200行目まで)、次のキーシーケンスを入力します。 Esc:11,2d

3
Barun

ファイルのどこにいても、ggdGを実行できます

:%dは、キーを押す回数が少ないほどうまくいきます。まあ、shiftキーとenterキーを数えると、実際には上記のキーを2回押します。

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

3
vgoff

Esc n dd。 nは、現在の行から削除し、現在の行を含む行数です。 「Esc」ボタン、「n」、「dd」の順に押します。 理解を深めるために

0
Rida Abid