在vim中选择代码块

tak*_*hin 15 vim keyboard-shortcuts

给出这样的代码:

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         }
Run Code Online (Sandbox Code Playgroud)

光标位于第=590 行的字符处。

选择代码块的最有效方法是:

  1. 第 590-597 行
  2. 第 591-596 行(只是内部部分)

Mik*_*eyB 22

做第一件事:

  • 打到线$的尽头{
  • vV(取决于您是否要选择行)
  • %(跳转到匹配的括号)。

要仅选择内部部件,请进入内部部件并使用i{方向修改器。

例如,要删除当前{…}块内的所有内容,请键入:di{


Cal*_*leb 11

  1. $跳转到您所在行的末尾(在左大括号上方)
    v开始选择(V对于整行)
    %以跳转到匹配的大括号。

  2. j向下一行,使光标位于您尝试选择的大括号内
    v以开始选择(V对于整行)
    i{选择大括号内的所有内容


小智 5

为了稍微扩展 Caleb 的答案,vi{将选择代码块的“内部”。要包含代码块的“外部”,即包含大括号,请使用va{.

但这不会包括该while节。为此,您可以使用o将光标移动到选区的开头,然后0将选区移动到行的开头。