मैं स्वचालित रूप से विम में मिलान वाले ब्रेसिज़ कैसे बना सकता हूं?
यह समस्या गैर-तुच्छ है, जैसा कि आप देखेंगे। एक प्लगइन का प्रयोग करें, जैसे: सरल जवाब है स्वतः या smartinput । बस भोली-भाली रीमेकिंग ([.. कीज़ आपको एक दो लाइन में edgecases के साथ प्रस्तुत करेगी, यही कारण है कि ये प्लगइन्स बने हैं, और क्यों वे आमतौर पर काफी जटिल हैं (यदि वे किसी भी अच्छे हैं)।
इसलिए मैंने समापन ब्रेस सम्मिलित करने के लिए उल्टीस्नीप का उपयोग किया
आप इसके बजाय यह कोशिश कर सकते हैं (जो मेरे मूल सुझाव से अलग है):
inoremap ( ()<CR>=UltiSnips_Anon('$1)$0', ')')<CR>
जहां UltiSnips मैच में (
शामिल करने के बजाय लाइन को विभाजित करेगा main
। इसके लिए स्निपेट प्लगइन का उपयोग करने में समस्या यह है कि वे (आमतौर पर) घोंसले के शिकार का समर्थन नहीं करते हैं, इसलिए वे अगले (नेस्टेड) स्निपेट डालने पर किसी भी कूदने की स्थिति को भूल जाएंगे।
ब्रेस जोड़ी से बाहर कूदने के लिए संयोजन Ctrl-jका उपयोग किया जाता है।
आप Ctrl-jUltiSnips या परस्पर विरोधी प्लगइन के लिए रीमैप कर सकते हैं । यदि दस्तावेज़ में मैपिंग सूचीबद्ध नहीं हैं, तो आप :map/imap/nmap <key>
मैपिंग दिखाने के लिए उपयोग कर सकते हैं । यदि आप Ctrl-jचुनना और चुनना और दोनों प्लगइन्स का काम करना चाहते हैं, तो आप इसके लिए पूछ रहे हैं:
- कुछ और अधिक उन्नत से मुझे संदेह है कि आप सोच सकते हैं
- मुझे कुछ संदेह है कि आप वास्तव में नहीं चाहते हैं
इस बैश लूप पर विचार करें:
while (( ${arr1[i]} < ${arr2[i<CURSOR>]} )); do
[next_snippet_position_marker]
done
इस स्थिति में, आपको Ctrl-jलूप बॉडी में जाने के लिए 5 बार प्रेस करना होगा । एक संबंधित जोड़ी से बाहर निकलने के लिए समापन ब्रेसिज़ का उपयोग करना आपको बहुत अधिक नियंत्रण देता है जहां आप वास्तव में कर्सर को स्थानांतरित करना चाहते हैं। आप सम्मिलित जोड़े पर नज़र रखने और उपयोग करने के लिए एक स्टैक लागू कर सकते हैंCtrl-j पॉप और स्थानांतरित करने के लिए करने के हैं, लेकिन तब आप समस्याओं में भाग लेंगे यदि आप मैन्युअल रूप से स्टैक से हटाने के बिना ब्रेसिज़ को हटाना शुरू करते हैं। तो आप उन समस्याओं को हल करना शुरू कर देंगे जिन्हें ब्रेस-प्लगर्स हल करने की कोशिश कर रहे हैं। यह प्रबलित करने के लिए एक कठिन पहिया है।
इस पर विस्तार करते हुए, आप Ctrl-jब्रेसिज़ और स्निपेट्स से बाहर कूदने के लिए, शुरू में आपसे जो कुछ भी मांग सकते हैं, प्राप्त कर सकते हैं । यदि आप स्निपेट पदों का प्रतिनिधित्व करने के लिए कुछ डमी मूल्य का उपयोग करते हैं और उन्हें Ctrl-jस्निपेट या ब्रेसिंग के अनुरूप करने के लिए गतिशील रीमैपिंग के साथ, समापन ब्रेसिज़ के अलावा स्टैक पर धक्का देते हैं । लेकिन फिर आपको कुछ उन्नत उन्नत आंकड़ो को लागू करने की आवश्यकता होगी ताकि यह पता चले कि जादू क्या होना चाहिए, क्योंकि आप अनिवार्य रूप से एक ही बार में दो समस्याओं को ले रहे हैं, जो वर्तमान में स्निपेट सम्मिलन प्लगइन्स और ब्रेस मिलान प्लगइन्स के रचनाकारों द्वारा अलग-अलग हल किया जा रहा है, और इन समस्याओं को फिर से हल करने के लिए, उनके समाधान के शीर्ष पर , सुविधा और, अच्छी तरह से, जादू को प्राप्त करने के लिए।
यह बनाम सुविधा को नियंत्रित करने के लिए नीचे आता है। मुझे लगता है कि इस मामले में नियंत्रण आपको बेहतर सेवा देगा, जिसका अर्थ है कि आपको इन समस्याओं और उनके संबंधित प्लगइन्स और कीमैपिंग को अलग रखना चाहिए। यदि आप अभी भी सुविधा चाहते हैं, तो यह संभव है, लेकिन यह कठिन है।
)
, जिनकी पुनरावृत्तिc-j
हो सकती है।