Sélectionnez le bloc de code dans vim

13

Étant donné un code comme celui-ci:

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         }

Le curseur se trouve sur le caractère =de la ligne 590.

Quelle est la manière la plus efficace de sélectionner le bloc de code:

  1. lignes 590-597
  2. lignes 591-596 (juste la partie intérieure)
takhin
la source

Réponses:

20

Pour faire le premier:

  • Appuyez $pour aller à la fin de la ligne sur le{
  • Appuyez sur vou V(selon que vous souhaitez sélectionner des lignes ou non)
  • Appuyez sur %(pour passer au support correspondant).

Pour sélectionner uniquement la partie intérieure, entrez dans la partie intérieure et utilisez le i{modificateur directionnel.

Par exemple, pour supprimer tout à l' intérieur du courant {…}bloc, tapez: di{.

MikeyB
la source
1
Wow, je viens d'apprendre à utiliser yi(, merci :)
takeshin
10
  1. $pour sauter à la fin de la ligne sur laquelle vous êtes (pour être au-dessus de l'accolade d'ouverture)
    vpour commencer une sélection ( Vpour les lignes entières)
    %pour passer à l'accolade correspondante.

  2. jpour descendre d'une ligne de sorte que votre curseur soit à l'intérieur des accolades que vous essayez de sélectionner
    vpour commencer une sélection ( Vpour les lignes entières)
    i{sélectionnez tout à l'intérieur des accolades

Caleb
la source
La méthode 2 est probablement la meilleure méthode ici, car le mouvement $ dans la méthode 1 ne fonctionne que parce que l'accolade ouvrante est à la fin de la ligne. La méthode 2 fonctionne sans le mouvement j si votre curseur se trouve n'importe où dans les accolades.
SpoonMeiser
3

Pour développer légèrement la réponse de Caleb, vi{sélectionnera "l'intérieur" du bloc de code. Pour inclure "l'extérieur" du bloc de code, c'est-à-dire y compris les accolades, utilisez va{.

Cela n'inclura pas la whilestrophe cependant. Pour ce faire, vous pouvez utiliser opour déplacer le curseur au début de la sélection, puis 0pour déplacer la sélection au début de la ligne.

Rivière Satya
la source