ใช้% ในภาษาที่ไม่มีเครื่องหมายปีกกา


17

ในภาษา C และ C ฉันสามารถใช้%เพื่อข้ามไปที่เครื่องหมายปีกกาที่สอดคล้องกันที่เคอร์เซอร์อยู่ นี่คือ "เคล็ดลับ" ที่รู้จักกันดี

แต่ใน Ruby เช่น:

def fun
    [1, 2].each do |n|
    end
end 

สิ่งนี้ใช้ไม่ได้เนื่องจากทับทิมไม่ใช้อักขระในmatchpairs(ตั้งค่าเป็น(:),{:},[:],<:>ค่าเริ่มต้น

ฉันพยายามตั้งค่านั้น แต่มันไม่ทำงาน:

:set matchpairs=def:end
E474: Invalid argument: matchpairs=def:end

ฉันสามารถใช้มันเพื่อทำงานกับภาษาเช่น Ruby ได้หรือไม่ หมายเหตุนี่ไม่ใช่คำถามเฉพาะทับทิมตัวอย่างอื่น ๆ อาจเป็นเชลล์สคริปต์ ( if/ fi) หรือ Lua ( function/ end) และอีกมากมาย

คำตอบ:


17

คุณสามารถใช้ปลั๊กอินmatchit สิ่งนี้รวมอยู่ในการกระจาย vim ที่ทันสมัยดังนั้นสิ่งที่คุณต้องทำเพื่อใช้คือเพิ่มสิ่งต่อไปนี้ใน vimrc ของคุณ:

runtime macros/matchit.vim

นอกจากนี้คุณยังสามารถรับมันเป็นปลั๊กอินหากคุณต้องการ มันรับรู้คำหลักจำนวนมากโดยค่าเริ่มต้น (รวมถึงdefและend) และสามารถขยายเพื่อรับรู้มากขึ้น


1
หมายเหตุ: การพิมพ์:runtime macros/matchit.vimไม่ทำงาน คุณต้องใส่ vimrc ของคุณและเริ่ม Vim ...
Martin Tournoij

ฉันทำอย่างนั้น. ยังใช้งานไม่ได้สำหรับฉัน :(
Thirupathi Thangavel

0

เอกสารต่อไปนี้ตรงกันส่วนที่เพิ่มเติมด้านล่างใน ~ / .vimrc ใช้ได้สำหรับฉัน

:runtime macros/matchit.vim
filetype plugin on

ยินดีต้อนรับสู่เว็บไซต์! นี่เป็นคำตอบเดียวกับคำตอบที่ยอมรับได้ ข้อแตกต่างคือfiletypeคำสั่งของคุณ: อาจเป็นประโยชน์ถ้าคุณอธิบายโดยละเอียดว่าทำไมคุณเพิ่มบรรทัดนี้และช่วยตอบคำถามได้อย่างไร (คุณยังมีคำผิดสองสามข้อ: "doc", "the".)
Rich
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.