Vim'de kod bloğunu seç


13

Bunun gibi bir kod verildi:

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         }

İmleç, =590 satırındaki karakterdedir .

Kod bloğunu seçmenin en etkili yolu hangisidir:

  1. çizgiler 590-597
  2. çizgiler 591-596 (sadece iç kısım)

Yanıtlar:


20

İlkini yapmak için:

  • $Lineover sonuna gitmek için vurmak{
  • İtme vveya V(eğer çizgileri seçmek için istemesem de bağlı olarak)
  • İtin %(uygun braketine geçiş).

Yalnızca iç parçayı seçmek için iç parçanın içine girin ve i{yön değiştiriciyi kullanın .

Örneğin, geçerli içindeki her şeyi silmek için {…}bloğun, yazın: di{.


1
Vay be, ben sadece kullanmayı öğrendim yi(, teşekkürler :)
takeshin

10
  1. $Bulunduğunuz çizginin sonuna atlamak için (açılış ayracı üzerinde olmak)
    vbir seçim başlatmak ( Vtüm satırlar için)
    %eşleşen ayraca atlamak için.

  2. jbir satır aşağı gitmek için, imleciniz kaşlı ayraçlar içinde olacak şekilde
    vbir seçim başlatmak için seçmeye çalıştığınız ( Vtüm satırlar için)
    i{kaşlı ayraçlar içindeki her şeyi seçin


Yöntem 2 muhtemelen en iyi yöntemdir, çünkü yöntem 1'deki $ hareketi yalnızca açılış ayracı satırın sonunda olduğu için çalışır. 2. yöntem, imleciniz parantez içinde herhangi bir yerdeyse j hareketi olmadan çalışır.
SpoonMeiser

3

Caleb'in cevabını birazcık genişletmek için vi{, kod bloğunun "içi" ni seçecektir. Kod bloğunun "dışını", yani kaşlı ayraçları dahil etmek için kullanın va{.

Buna whilestanza da dahil değildir . Bunu yapmak oiçin imleci seçimin başlangıcına 0taşımak ve sonra seçimi satırın başına taşımak için kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.