วิธีการเลื่อนเคอร์เซอร์ไปยังระดับการเยื้องที่ถูกต้องโดยไม่ต้องออกจากโหมดแทรก?


14

ตัวอย่างเช่นฉันมีรหัส JavaScript นี้ |ตัวละครที่แสดงให้เห็นถึงตำแหน่งของเคอร์เซอร์และมันอยู่ในสายที่ว่างเปล่า

function a() {
    console.log("a");

    function b() {
        console.log("b");

        function c() {
            console.log("c");
        }
|
        c();
    }

    b();
}

หลังจากการดำเนินการที่ร้องขอเนื้อหาจะมีลักษณะเช่นนี้:

function a() {
    console.log("a");

    function b() {
        console.log("b");

        function c() {
            console.log("c");
        }
        |
        c();
    }

    b();
}

สิ่งที่ฉันขอคือคำสั่งการแมป

ขอบคุณมาก! :-)

คำตอบ:


16

ดังที่ @amessan พูดถึง<C-f>จะเยื้องไปยังตำแหน่งที่ถูกต้องจากโหมดแทรก คุณยังสามารถใช้<C-t>และ<C-d>เพื่อเพิ่มหรือลดระดับการเยื้องจากโหมดแทรก

อย่างไรก็ตามคุณสามารถหลีกเลี่ยงสถานการณ์ดังกล่าวได้โดยใช้หนึ่งในเทคนิคต่อไปนี้:

  • ใช้o/ Oเพื่อเริ่มบรรทัดใหม่จากบรรทัดก่อนหน้า
  • ใช้cc/ Sเพื่อแก้ไขบรรทัด (คำนึงถึงการเยื้อง)

สำหรับความช่วยเหลือเพิ่มเติมดู:

:h cc
:h S
:h o
:h i_CTRL-T
:h i_CTRL-F

3
นอกจากนี้ยัง<C-f>มีการกำหนดโดยทั่วไปใน'indentkeys'หรือ'cinkeys'(ขึ้นอยู่กับกลไกการเยื้องที่ใช้) ซึ่งจะช่วยให้คุณสามารถรวมบรรทัดปัจจุบันไปยังตำแหน่งที่ควรจะเป็นจากโหมดแทรก ดู: ช่วย i_CTRL-F
jamessan

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