web-dev-qa-db-ja.com

vimでコードブロックを選択

次のようなコードがあるとします:

588          while ($linecounter > 0) {
589             $token = " ";
590             while ($token != PHP_EOL) {
591                 if (fseek($handle, $pos, SEEK_END) == -1) {
592                     $beginning = true;
593                     break;
594                 }
595                 $token = fgetc($handle);
596                 $pos--;
597             }
598             $linecounter--;
599             if ($beginning) {
600                 rewind($handle);
601             }
602         }

カーソルは590行目の文字=にあります。

これは、コードブロックを選択する最も効率的な方法です。

  1. 590-597行
  2. 591〜596行目(内側のみ)
13
takeshin

最初に行うこと:

  • $を押して、ラインオーバーの終わりに移動します{
  • vまたはVを押します(行を選択するかどうかに応じて)
  • %を押します(一致するブラケットにジャンプします)。

内側の部分だけを選択するには、内側の部分の内側に移動し、i{方向修飾子を使用します。

たとえば、現在の{…}ブロック内のすべてを削除するには、di{と入力します。

20
MikeyB
  1. $は、現在の行の終わりにジャンプします(開始ブレースを超える)
    vは選択を開始します(行全体はV
    %は、対応する中括弧にジャンプします。

  2. j 1行下に移動して、選択しようとしている中括弧内にカーソルを置きます
    vは選択を開始します(行全体はV
    i{中括弧内のすべてを選択します

10
Caleb

Calebの答えを少し拡張するために、vi{はコードブロックの「内側」を選択します。コードブロックの「外側」、つまり中括弧を含めるには、va{を使用します。

ただし、これにはwhileスタンザは含まれません。これを行うには、oを使用してカーソルを選択範囲の先頭に移動し、次に0を使用して選択範囲を行の先頭に移動します。

3
River Satya