Pilih blok kode dalam vim

13

Diberikan kode seperti ini:

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         }

Kursor berada pada karakter =di baris 590.

Yang merupakan cara paling efisien untuk memilih blok kode:

  1. baris 590-597
  2. baris 591-596 (hanya bagian dalam)
takeshin
sumber

Jawaban:

20

Untuk melakukan yang pertama:

  • Tekan $untuk pergi ke akhir baris atas{
  • Tekan vatau V(tergantung pada apakah Anda ingin memilih jalur atau tidak)
  • Tekan %(untuk melompat ke braket yang cocok).

Untuk memilih hanya bagian dalam, masuk ke dalam bagian dalam dan gunakan i{pengubah arah.

Misalnya, untuk menghapus segala sesuatu di dalam arus {…}blok, ketik: di{.

MikeyB
sumber
1
Wow, saya baru belajar cara menggunakannya yi(, terima kasih :)
takeshin
10
  1. $untuk melompat ke ujung garis Anda berada (berada di atas brace pembuka)
    vuntuk memulai seleksi ( Vuntuk seluruh baris)
    %untuk melompat ke penjepit yang cocok.

  2. juntuk turun satu baris sehingga kursor Anda berada di dalam kawat gigi yang Anda coba pilih
    vuntuk memulai seleksi ( Vuntuk seluruh garis)
    i{pilih segala sesuatu di dalam kawat gigi

Caleb
sumber
Metode 2 mungkin adalah metode terbaik di sini, karena $ pergerakan dalam metode 1 hanya berfungsi karena tanda kurung buka di akhir baris. Metode 2 berfungsi tanpa gerakan j jika kursor Anda berada di mana saja dalam kurung kurawal.
SpoonMeiser
3

Untuk memperluas jawaban Caleb hanya sedikit, vi{akan memilih "bagian dalam" dari blok kode. Untuk memasukkan "luar" dari blok kode, yaitu termasuk kurung kurawal, gunakan va{.

Ini tidak akan termasuk whilebait. Untuk melakukan itu, Anda dapat menggunakan ountuk memindahkan kursor ke awal pilihan, dan kemudian 0untuk memindahkan pilihan ke awal baris.

Sungai Satya
sumber