Виберіть блок коду in vim


13

Дано такий код:

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 (тільки внутрішня частина)

Відповіді:


20

Щоб зробити перше:

  • Натисніть, $щоб перейти до кінця естакади{
  • Натисніть vабо V(залежно від того, ви хочете вибрати рядки чи ні)
  • Натисніть %(щоб перейти до відповідної дужки).

Щоб вибрати лише внутрішню частину, перейдіть до внутрішньої частини та скористайтеся i{модифікатором спрямованості.

Наприклад, щоб видалити всі всередині поточного {…}блоку, введіть: di{.


1
Нічого собі, я тільки що навчився користуватися yi(, спасибі :)
takehin

10
  1. $щоб перейти до кінця рядка, на якому ви знаходитесь (бути над початковою дужкою),
    vщоб почати вибір ( Vдля цілих рядків),
    %щоб перейти до відповідного дужка.

  2. jщоб перейти вниз по одному рядку, щоб ваш курсор знаходився всередині брекетів, які ви намагаєтеся вибрати,
    vщоб почати вибір ( Vдля цілих рядків),
    i{виберіть усе все в дужках


Метод 2 є, мабуть, найкращим методом тут, оскільки рух $ у методі 1 працює лише тому, що в кінці рядка знаходиться розкривна дужка. Спосіб 2 працює без руху j, якщо ваш курсор знаходиться десь у дужках.
SpoonMeiser

3

Щоб трохи розширити відповідь Калеба, vi{виберемо «всередину» кодового блоку. Щоб включити «зовні» кодового блоку, тобто включити дужки, використовуйте va{.

Це не включатиме whileстрофу. Для цього ви можете oперемістити курсор на початок виділення, а потім 0перемістити виділення на початок рядка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.