เลือก block code เป็นกลุ่ม


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

ในการทำสิ่งแรก:

  • กด$เพื่อไปยังจุดสิ้นสุดของ lineover ที่{
  • กดvหรือV(ขึ้นอยู่กับว่าคุณต้องการเลือกเส้นหรือไม่)
  • กด%(เพื่อข้ามไปยังวงเล็บเหลี่ยมที่ตรงกัน)

ในการเลือกเฉพาะส่วนด้านในให้เข้าไปด้านในส่วนด้านในแล้วใช้i{ตัวปรับทิศทาง

ตัวอย่างเช่นในการลบทุกอย่างภายในปัจจุบันบล็อกพิมพ์:{…}di{


1
ว้าวฉันเพิ่งเรียนรู้วิธีใช้yi(ขอบคุณ :)
ทาเคชิน

10
  1. $เพื่อข้ามไปยังจุดสิ้นสุดของบรรทัดที่คุณอยู่ (จะอยู่เหนือเครื่องหมายวงเล็บเปิด)
    vเพื่อเริ่มการเลือก ( Vสำหรับทั้งบรรทัด)
    %เพื่อข้ามไปยังวงเล็บปีกกาที่ตรงกัน

  2. jเพื่อลงหนึ่งบรรทัดเพื่อให้เคอร์เซอร์ของคุณอยู่ในเครื่องหมายปีกกาที่คุณพยายามเลือก
    vเพื่อเริ่มต้นการเลือก ( Vสำหรับทั้งบรรทัด)
    i{เลือกทุกอย่างภายในเครื่องหมายปีกกา


วิธีที่ 2 น่าจะเป็นวิธีที่ดีที่สุดที่นี่เนื่องจากการเคลื่อนไหว $ ในวิธีที่ 1 ใช้งานได้เพียงเพราะการเปิดรั้งอยู่ที่ท้ายบรรทัด วิธีที่ 2 ทำงานโดยไม่มีการเคลื่อนไหว j หากเคอร์เซอร์อยู่ที่ใดก็ได้ภายในวงเล็บปีกกา
SpoonMeiser

3

หากต้องการขยายคำตอบของ Caleb เพียงเล็กน้อยvi{จะเลือก "ข้างใน" ของบล็อครหัส รวมถึง "นอก" va{ของบล็อกรหัสคือรวมทั้งการจัดฟันใช้

สิ่งนี้จะไม่รวมถึงwhileบทที่ เมื่อต้องการทำเช่นนั้นคุณสามารถใช้oเพื่อเลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของส่วนที่เลือกแล้ว0ย้ายส่วนที่เลือกไปยังจุดเริ่มต้นของบรรทัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.