ฉันจะสร้างวงเล็บปีกกาที่จับคู่ในกลุ่มโดยอัตโนมัติได้อย่างไร?
ปัญหานี้เป็นเรื่องไม่สำคัญอย่างที่คุณจะเห็น คำตอบง่ายๆคือ: ใช้ปลั๊กอินเช่นAutoCloseหรือsmartinput เพียงแค่ทำการแมปใหม่อย่างไร้เดียงสา ([.. แป้นจะนำเสนอคุณด้วย edgecases ในสองบรรทัดนั่นคือสาเหตุที่ปลั๊กอินเหล่านี้ถูกสร้างขึ้นมาและทำไมพวกเขาจึงมักจะค่อนข้างซับซ้อน (ถ้ามี)
ดังนั้นฉันจึงใช้ UltiSnips เพื่อแทรกรั้งปิด
คุณสามารถลองสิ่งนี้แทน (ซึ่งต่างจากคำแนะนำดั้งเดิมของฉัน):
inoremap ( ()<CR>=UltiSnips_Anon('$1)$0', ')')<CR>
โดยที่ UltiSnips จะแยกบรรทัด(
แทนที่จะรวมmain
อยู่ในการแข่งขัน ปัญหาของการใช้ส่วนเสริมปลั๊กอินสำหรับสิ่งนี้คือพวกเขา (ปกติ) ไม่สนับสนุนการซ้อนดังนั้นพวกเขาจะลืมตำแหน่งกระโดดใด ๆ เมื่อแทรกส่วนย่อย (ซ้อน) ถัดไป
ในการกระโดดออกจากคู่รั้งCtrl-jจะใช้การรวมกัน
คุณสามารถทำการแมปใหม่Ctrl-jสำหรับ UltiSnips หรือปลั๊กอินที่ขัดแย้งกัน หากการแมปนั้นไม่ปรากฏในเอกสารคุณสามารถใช้:map/imap/nmap <key>
เพื่อแสดงการแมป หากคุณต้องการCtrl-jเลือกและเลือกและทำงานของปลั๊กอินทั้งสองคุณกำลังขอ:
- บางอย่างก้าวหน้าไปกว่าที่ฉันคิดว่าคุณอาจคิด
- สิ่งที่ฉันสงสัยว่าคุณไม่ต้องการจริงๆ
พิจารณาวน bash นี้:
while (( ${arr1[i]} < ${arr2[i<CURSOR>]} )); do
[next_snippet_position_marker]
done
ในกรณีนี้คุณจะต้องกดCtrl-j5 ครั้งเพื่อไปที่ลูปบอดี้ การใช้วงเล็บปีกกาปิดเพื่อกระโดดออกมาจากคู่ที่เกี่ยวข้องช่วยให้คุณควบคุมได้มากขึ้นว่าคุณต้องการให้เคอร์เซอร์เคลื่อนที่ไปที่ใด คุณสามารถติดตั้งสแต็กเพื่อติดตามคู่ที่แทรกไว้และใช้Ctrl-jในการป๊อปและย้าย แต่คุณจะพบปัญหาหากคุณเริ่มต้นการลบเครื่องหมายวงเล็บด้วยตนเองโดยไม่ลบออกจากสแต็ก ดังนั้นคุณจะเริ่มแก้ปัญหาที่ตัวยึดรั้งกำลังพยายามแก้ไข นี่คือวงล้อหนักที่จะบูรณาการ
เมื่อขยายออกไปคุณจะได้รับสิ่งที่คุณต้องการในตอนแรกโดยใช้Ctrl-jเพื่อกระโดดออกจากวงเล็บปีกกาและตัวอย่าง หากคุณใช้ค่าดัมมี่เพื่อเป็นตัวแทนตำแหน่งตัวอย่างและผลักดันพวกเขาไปยังสแต็คนอกเหนือจากวงเล็บปีกกาปิดด้วยการแมปแบบไดนามิกของCtrl-jเพื่อให้สอดคล้องกับการส่งตัวอย่างหรือวงเล็บปีกกา แต่คุณจะต้องใช้ฮิวริสติกขั้นสูงพอสมควรเพื่อหาว่าเวทมนตร์ควรจะเกิดอะไรขึ้นเนื่องจากคุณต้องเผชิญกับปัญหาสองอย่างในเวลาเดียวกันซึ่งขณะนี้ผู้แก้ไขของปลั๊กอินแทรกตัวอย่างและปลั๊กอินจับคู่ที่แยกออกจากกันนั้นกำลังแก้ไขอยู่ อีกครั้งการแก้ปัญหาเหล่านี้อีกครั้งด้านบนของพวกเขาแก้ปัญหาเพื่อให้เกิดความสะดวกสบายและดีวิเศษ
มันลงมาเพื่อควบคุมความสะดวกสบาย ฉันคิดว่าการควบคุมจะให้บริการคุณได้ดีขึ้นในกรณีนี้หมายความว่าคุณควรแยกแยะปัญหาเหล่านี้และปลั๊กอินและการแมปที่เกี่ยวข้อง หากคุณยังต้องการความสะดวกก็ทำได้ แต่ก็ยาก
)
แมปc-j
ไปที่อาจทำงาน