2009-05-19 10 views
35

.scm फ़ाइलों को संपादित करते समय यह बहुत अच्छा होगा अगर Vim स्वचालित रूप से ( शुरू करने के बाद स्वचालित रूप से अंतिम ब्रेस ) डाल देगा। मैं यह कैसे करु?स्वचालित रूप से ब्रेसिज़ को समाप्त करने के लिए मैं विम कैसे प्राप्त करूं?

उत्तर

35

आप अपनी पसंद के उद्घाटन ब्रेस मैप कर सकते हैं: AutoClose प्लगइन का उपयोग करने के लिए

:imap (()<left> 
+4

अन्य उत्तरों में उल्लिखित प्लगइन्स को संबंधित समापन "टाइपिंग" टाइप करते समय "समझदारी से" व्यवहार करने का लाभ होता है। यदि इसकी आवश्यकता नहीं है, तो मैं स्ट्रैगेट फॉरवर्ड मैप के साथ भी जाऊंगा। – user55400

+0

कुछ प्लगइन्स भी: - टिप्पणी और स्ट्रिंग संदर्भों के भीतर विस्तार न करें, - ब्रैकेट की एक जोड़ी के साथ चयन को घेरने के लिए एक तरीका परिभाषित करें, - समापन ब्रैकेट से पहले कूदने के लिए प्लेसहोल्डर/मार्कर डालें (जो सबसे अधिक के साथ संगत है स्निपेट/टेम्पलेट्स विस्तारक प्लगइन्स)। –

+0

क्या लाइन के अंत में ऐसा करने का कोई तरीका है? कभी-कभी यह उपयोगी से अधिक परेशान होता है लेकिन इसके साथ, मैं इसे खुशी से उपयोग करता हूं ... – alexpinho98

31

प्रयास करें।

+8

अन्य, कम आक्रामक (और कम परेशान, आईएमओ), [ऑटोक्लोज़] (http: //www.vim) के साथ भ्रमित नहीं होना चाहिए। संगठन/स्क्रिप्ट/script.php? script_id = 200 9) थियागो अल्व्स द्वारा। –

+2

@AndrewMarshall +1, आपका सूचीबद्ध संस्करण बहुत कम परेशान है। मैं यहां माइकोला के जवाब में एक के लिए एक विकल्प की तलाश में आया क्योंकि यह क्विर्क है। –

+0

एफवाईआई, यह प्लगइन ठीक काम करने लगता है लेकिन मेरे लिए यह "laggy" '' व्यवहार पेश किया। तो अगर आप इसके बारे में परवाह करते हैं तो इससे बचें। –

8

इस विषय पर कई युक्तियां और प्लगइन्स हैं। Vimtips साइट पर relevant entry पर एक नज़र डालें।

11

मैं एक बहुत जरूरत है, और मैं पहले से ही प्लग-इन के कुछ करने की कोशिश की:

स्वतः, http://www.vim.org/scripts/script.php?script_id=1849, थोड़ा आक्रामक है।

सरल जोड़े, http://www.vim.org/scripts/script.php?script_id=2339, पायथन पर निर्भर करता है। यदि आप लिनक्स पर हैं तो यह कोई समस्या नहीं है, लेकिन विंडोज़ पर आपके पास पाइथन दुभाषिया को विम संस्करण से मिलान करने में परेशानी हो सकती है।

मेरी सलाह ClosePairs होगी, जो आप http://www.vim.org/scripts/script.php?script_id=2373 पर पा सकते हैं जो मेरे लिए पूरी तरह से काम कर रहा है। यह सरल और उपयोगी है।

1

इसका उपयोग करने में समस्या है (आईमैप या स्क्रिप्ट्स में से एक के माध्यम से)। आप . कमांड का उपयोग कर पूर्ण संपादन को दोहराने में सक्षम नहीं होंगे।

e.g. (foo) with . only gets you foo, without the brackets.

अगर आप कोष्ठक सामान्य रूप से डालें, दो पात्रों के रूप में यह ठीक काम करता है।

3

चेक कोशिश कर सकते हैं: vim-autoclose by Townk। पहले उल्लिखित AutoClose आक्रामक था, कभी-कभी एक अवांछित तरीके से व्यवहार करना।

13

सबसे आसान जवाब एक नक्शा शामिल करना है। उदाहरण के लिए .:

:inoremap (()<left> 
समस्या

है कि आप प्रत्येक प्रतीक आप अपने आप बंद करना चाहते हैं ('{', '[', '' ', आदि)। इसके अलावा, प्लग इन सामान्य रूप में अधिक हैं के लिए एक प्रविष्टि जोड़ने के लिए की आवश्यकता होगी है "समापन" चरित्र का पता लगाने और नहीं यह दोहरा तरह स्मार्ट, उपलब्ध कराने बातें।

ऊपर समाधान और सबसे प्लग इन के साथ समस्या

, कि वे टूट पूर्ववत अनुक्रम (gundo किसी को?) करते हैं, के रूप में :help ins-special-special में विस्तार से बताया है ।

हैं प्लगइन के सूची है कि क्या आप (vimtips से) पूछना है:

  • delimitMate इसराइल Chauca Fuentes द्वारा (विन्यास, और तोड़ नहीं है पूर्ववत करें/फिर/दोहराने, लेकिन - iabbr तोड़ने) भी GitHub
  • AutoClose कार्ल Guertin द्वारा पर (स्वत: बंद कर देता है विशिष्ट हार्ड-कोडेड वर्ण, लेकिन पूर्ववत करें/फिर/दोहराने नष्ट नहीं होती है) थियागो अल्वेस द्वारा
  • AutoClose (विन्यास, लेकिन टूट जाता है पूर्ववत/फिर से/दोहराने)
  • auto-pairs मियाओ जियांग द्वारा ऑटो जोड़े (विन्यास, लेकिन टूट जाता है पूर्ववत/फिर से/दोहराने)
  • ClosePairs एडोआर्डो Vacchi द्वारा (विन्यास, लेकिन टूट जाता है पूर्ववत/फिर से/दोहराने)
  • smartinput काना Natsuno (विन्यास द्वारा, लेकिन टूट जाता है पूर्ववत/फिर से/दोहराना)

vimtips के अलावा, वेब पर another nice explanation of the issue है।

+2

किसी और के लिए जो इसे भविष्य में पाता है, मैंने अभी ऑटो-जोड़ों का उपयोग करना शुरू कर दिया है, और जब तक कि मैं शब्दावली को गलत नहीं समझता, यह मेरे पूर्ववत या इतिहास को तोड़ नहीं देता है। इस सूची में से सबसे अच्छा! यह बैकस्पेस पर जोड़े को हटाने को भी संभालता है! – Lethjakman

+0

कौन सा विम संस्करण? पिछली बार मैंने वहां जांच की थी कि अभी भी विम 7.4 और उसके बाद ऑटो-क्लोजिंग के साथ सही ढंग से काम को पूर्ववत/दोबारा दोहराने/दोहराने का समाधान नहीं था। कुछ प्लगइन्स में सेटलाइन() का उपयोग करके एक हैक था जो पहले विम संस्करणों में काम करता था। – Ben

1

https://github.com/vim-scripts/Auto-Pairs

इस प्लगइन परीक्षण Undu फिर से करना के लिए। 2013 यह सिर्फ काम करता है। पायथन-मोड प्लगइन के साथ भी।

5

मैं वर्तमान में auto-pairs का उपयोग कर रहा हूं और यह काफी अच्छी तरह से काम करता है।

प्लगइन ब्रेकिंग पूर्ववत/फिर से/दोहराने के मुद्दे ऊपर सूचीबद्ध कुछ प्लगइन के बीच बने रहने लगते हैं, लेकिन मुझे लगता है कि यह एक मुद्दा नहीं है (ठीक है, कम से कम इस समय मेरे लिए नहीं)।

हालांकि एक चेतावनी हालांकि, मैं इसका उपयोग करने में सक्षम नहीं था: हेल्पटैग इस प्लगइन के साथ इस फ़ाइल के साथ मदद फ़ाइल उत्पन्न करने के समय उत्पन्न करने के लिए।

0

cohama करके एक नया प्लगइन है:

lexima.vim (github)

(vim.org पर अभी तक नहीं)

इस प्लग . आदेश का समर्थन करता है!
अफैइक, यह एकमात्र प्लगइन है जिसका समर्थन करता है।

इसके अलावा पूर्ववत/पुनः अनुक्रम काम करता है।

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

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