घुंघराले ब्रेसिज़ के बिना भाषाओं में% का उपयोग करना


17

सी और सी-जैसी भाषाओं में, मैं %उसी घुंघराले ब्रेस पर कूदने के लिए उपयोग कर सकता हूं जो कर्सर चालू है। यह एक प्रसिद्ध "ट्रिक" है।

लेकिन उदाहरण के लिए रूबी में:

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

यह काम नहीं करता है, क्योंकि माणिक पात्रों का उपयोग नहीं करता है matchpairs( (:),{:},[:],<:>डिफ़ॉल्ट रूप से सेट करें) ।

मैंने कोशिश की है कि सेटिंग, लेकिन यह काम नहीं करता है:

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

क्या मुझे रूबी जैसी भाषाओं के साथ काम करने के लिए यह मिल सकता है? ध्यान दें कि यह एक रूबी-विशिष्ट प्रश्न नहीं है, अन्य उदाहरण शेल स्क्रिप्ट ( if/ fi) या Lua ( function/ end), और कई और अधिक हो सकते हैं।

जवाबों:


17

आप मिलान प्लगइन का उपयोग कर सकते हैं । यह आधुनिक विम डिस्ट्रिब्यूशन में शामिल है, इसलिए इसका उपयोग करने के लिए आपको बस इतना करना है कि निम्नलिखित को अपने vimrc में जोड़ें:

runtime macros/matchit.vim

आप चाहें तो इसे एक प्लगइन के रूप में भी पैक कर सकते हैं। यह डिफ़ॉल्ट (शामिल करके कई खोजशब्दों को पहचानता है defऔर end) और अधिक पहचान करने के लिए बढ़ाया जा सकता है।


1
नोट: टाइपिंग :runtime macros/matchit.vimकाम नहीं करती है; आपको अपने vimrc में डालने की आवश्यकता है और Vim को पुनः आरंभ करें ...
मार्टिन टूरनोइज

मैंने वह किया। अभी भी मेरे लिए काम नहीं करता है :(
तिरुपति थंगावेल

0

निम्नलिखित डॉक्टर मिलान, ~ / .vimrc में नीचे दिए गए परिवर्धन ने मेरे लिए काम किया

:runtime macros/matchit.vim
filetype plugin on

साइट पर आपका स्वागत है! यह मूल रूप से मौजूदा, स्वीकृत उत्तर के समान ही उत्तर है। अंतर आपकी filetypeआज्ञा है: यह उपयोगी हो सकता है यदि आपने विस्तार से वर्णन किया है कि आपने इस पंक्ति को क्यों जोड़ा है और यह प्रश्न का उत्तर देने में कैसे मदद करता है। (आपको टाइपो का एक जोड़ा भी मिला है: "डॉक्टर", "द"।)
रिच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.