2010-08-05 8 views
29

ग्रहण-आधारित संपादकों में से एक में मैंने हाल ही में कोशिश की (मुझे लगता है कि यह रूबीमाइन था), जब एक रूबी कीवर्ड जो या तो खोला गया था या एक विधि बंद या ब्लॉक चुना गया था, संबंधित खुला/बंद कीवर्ड हाइलाइट किया गया था। इसी तरह से विम एक समान खुले/बंद कोष्ठक को हाइलाइट करने में सक्षम है।विम: रूबी (डीफ/एंड, डू/एंड इत्यादि) में कीवर्ड जोड़े को हाइलाइट करें

उदाहरण के लिए, यदि मैंने 'def' चुना है, तो यह संबंधित 'अंत' को हाइलाइट करेगा। यह डू/एंड ब्लॉक के लिए भी काम करता है।

यह वास्तव में आसान था, खासकर उन लंबी और कभी-कभी भारी घोंसले वाली रुपेक फ़ाइलों के लिए।

क्या कोई यह जानता है कि विम में इसे कैसे प्राप्त किया जाए?

+2

ruby-matchit.vim पर एक नज़र डालें - जो आपको 'def' ...' end' और 'class'..'end' और'% 'का उपयोग कर कंपनी के बीच उछाल देता है। जो तर्क आप चाहते हैं उसके लिए तर्क समान होना चाहिए। http://vim.sourceforge.net/scripts/script.php?script_id=290 – Telemachus

+1

'x' के लिए एक और उपयोगी विम प्लगइन ... 'एंड' जोड़े टिम पोप की 'एंडवाइ' है, जो स्वचालित रूप से 'एंड' जब भी आप एक सेक्शन शुरू करते हैं जिसके लिए एक की आवश्यकता होती है: http://github.com/tpope/vim-endwise – Telemachus

+0

टिप्पणी टेलीमैचस के लिए धन्यवाद। ये वही नहीं हैं जो मैं ढूंढ रहा हूं, लेकिन फिर भी सहायक। रूबी-मैचिट एक ही उद्देश्य की सेवा कर सकता है, लेकिन यदि संभव हो, तो मैं अपने प्रश्न में वर्णित हाइलाइटिंग पसंद करूंगा। एक बार जब मैं विम के बारे में और जानूं, तो मैं जांच कर सकता हूं कि खुद को लागू करना संभव है या नहीं। – pakeha

उत्तर

2

ऐसा लगता है कि यह विम प्लगइन माता-पिता से मेल खाता है: http://vimdoc.sourceforge.net/htmldoc/pi_paren.html आप संभवतः उस कोड में खोद सकते हैं ताकि यह देखने के लिए कि अन्य चीजों से मेल खाने के लिए इसे कैसे बढ़ाया जाए।

+1

यह काम नहीं करेगा क्योंकि: 'मदद मैचपियर' कहता है: वर्तमान में केवल एक बाइट वर्ण जोड़े की अनुमति है, और वे अलग होना चाहिए। –

+0

हां, यह वर्तमान में कहता है ... लेकिन कोड माता-पिता से मेल खाने का विचार देगा, और फिर आप इसका विस्तार कर सकते हैं ताकि यह बहु-चार जोड़े का समर्थन करेगा? यह शुरू करने के लिए एक जगह है :) –

8

वीआईएम (7.2 तक) एक समापन 'if/end' जोड़े को हाइलाइट नहीं कर सकता है क्योंकि मिलान सेटिंग्स एक वर्ण को स्वीकार करती है (देखें: सहायता मिलानपेशियों)। मैं उपयोग करने के बजाय तह सलाह देते हैं, बशर्ते कि आप सही रूप में आपके कोड को इंडेंट:

:set foldmethod=indent 

तब का उपयोग करें: zc, za करें कि आप सही ब्लॉक में हैं बनाने के लिए।

17

यदि आप विम 7.3 का उपयोग कर रहे हैं, तो आपके पास MatchIt विम मैक्रो उपलब्ध होना चाहिए।

runtime macros/matchit.vim अपनी .vimrc फ़ाइल में जोड़ें और आप रूबी ब्लॉक से मेल खाने के लिए% का उपयोग करने में सक्षम होना चाहिए।

आप रूबी के लिए फ़ाइल प्रकार प्लगइन देख सकते हैं यह देखने के लिए कि यह किस बीच आगे बढ़ेगा।

+0

बिल्कुल सही! यह 'foldmethod = indent' और' zc' +1 सेट करें 'से काफी बेहतर काम करता है –

1

मैं जबकि एक ही समस्या यह बुनियादी गहरे लाल रंग का कोड के लिए काम करता है पर जवाब के लिए खोज इस प्लगइन पाया, लेकिन मैं Rspec के लिए इसे बाहर का परीक्षण नहीं किया आदि

बस pathogen के माध्यम से इसे स्थापित करने और जोड़ने let g:hl_matchit_enable_on_vim_startup = 1

https://github.com/vimtaku/hl_matchit.vim

संबंधित मुद्दे