मैं अब नियमित रूप से वीआईएम का उपयोग करता हूं लेकिन पिछली क्रिया को दोहराने के लिए मैंने कभी भी dot (।) कमांड का उपयोग नहीं किया। मैं इस बारे में पढ़ता रहता हूं कि यह कितना भयानक है लेकिन मुझे कभी भी वास्तविक दुनिया के उदाहरण नहीं दिखते हैं जो मुझे समझते हैं और जिस तरह से मैं वीआईएम में कोड करता हूं। कुछ असली दुनिया के उदाहरण क्या हैं जो दिखाते हैं कि डॉट (।) कमांड कितना भयानक है?क्या कोई मुझे बता सकता है कि वीआईएम में डॉट (।) कमांड इतना उपयोगी क्यों है?
उत्तर
यहां कुछ क्रियाएं हैं जो मैं डॉट कमांड के साथ करता हूं:
:%s/\<word\>/replacement/gc
से सरल*
शब्द पर है, तोcereplacement<esc>
है और फिरn.
दोहराएँ। यह अच्छा है अगर आपके शब्द के दो या तीन घटनाएं हैं।आप कई शब्दों है कि आप बदलना चाहते हैं, तो अगले शब्द पर जाना, मारा*
और फिरn.
- जब मैं कुछ ब्लॉक बाएँ संरेखित करना चाहते हैं:
<Ctrl-V>jjj<.....
या मोर्चे पर रिक्त स्थान सम्मिलित करें:<ctrl-v>jjjI<space><esc>....
- के बाद
dd
याdw
, डॉट आदेश
एक जादुई बात यह है कि डॉट कमांड के साथ होता है कि अगर यह एक आदेश है कि एक गिने रजिस्टर इस्तेमाल किया दोहराता है, यह अगले अंकित रजिस्टर का उपयोग करेगा (:help redo-register
देखना एक और लाइन/शब्द को हटा दिया जाएगा)।
स्पष्टीकरण: आप 9 लाइनों पर dd
किया था और उन्हें जिस क्रम में आपने उन्हें हटाया में बहाल करने के लिए चाहते हैं, तो कार्य करें: "1P........
। ध्यान दें कि 1 से 9 के रजिस्ट्रार विम की डिलीट-रिंग हैं। "1P
कर्सर के आखिरी हटाए गए पाठ से पहले डालेगा, "2P
फिर पूर्व-से-हटाए गए टेक्स्ट को सम्मिलित करेगा, और इसी तरह।
धन्यवाद ये दोनों बहुत अच्छे हैं। – rhinoinrepose
ओह, मैं खोज और प्रतिस्थापन को तेज करने के लिए ऐसा कुछ ढूंढ रहा हूं। कई बार मुझे कुछ मिल गया है और फिर इसे और अन्य लोगों को इसे बदलना चाहते हैं। उसके लिए धन्यवाद। –
मैं dw....
का उपयोग अक्सर मानसिक रूप से उन्हें गिनने की आवश्यकता के बिना शब्दों की एक श्रृंखला को हटाने के लिए करता हूं। उस उदाहरण में, 5dw
कम वर्ण हैं, लेकिन मुझे लगता है कि मैं डॉट कमांड का उपयोग करके लगभग 3ms तेज हूं, ताकि उन्हें delete word
दोबारा गिनने के लिए दोहराया जा सके।
संपादित करें मैं अभी कुछ संपादन कर रहा था और महसूस किया कि एक और स्थिति है कि मैं डॉट कमांड का उचित मात्रा का उपयोग करता हूं। मैं कल्पना करता हूं कि इस प्रकार की चीज को विम में संभालने का एक बहुत ही आसान तरीका है, लेकिन डॉट कमांड निम्न और समान परिस्थितियों में मदद करता है। निम्नलिखित मूल रूप से "का एक उदाहरण है, मैंने कुछ बार किया था, अब मैं इसे दो बार दोहराना चाहता हूं।" मैं एक नया परीक्षण (सी में) लिख रहा था और इसे एक स्ट्रिंग निरंतर एक एसक्यूएल स्क्रिप्ट का प्रतिनिधित्व करने की आवश्यकता थी कि मैं एक और जगह से कॉपी किया। मूल मल्टीलाइन (7 लाइन) स्क्रिप्ट डबल कोट्स में संलग्न नहीं थी, इसलिए मैंने यह किया:
- स्क्रिप्ट को सीधे कोड में डालें (फ़ाइल में 7 नई लाइनें)।
- कर्सर को पहली नई लाइन पर रखें।
- मैंअंतरिक्षअंतरिक्षअंतरिक्षअंतरिक्ष"esc रिक्त स्थान सम्मिलित करने के लिए और मौजूदा लाइन पर एक प्रारंभिक बोली।
- जे। छह बार उद्घाटन जोड़ने के लिए प्रत्येक अतिरिक्त लाइन के लिए उद्धरण।
- पहली पंक्ति में पुन: स्थिति चिपका हुआ पाठ का।
- एक\n"esc एक लाइन फ़ीड चरित्र और वर्तमान लाइन पर बंद करने उद्धरण छह बार फिर से डाल करने के लिए।
- जे। पर बंद करने वाला उद्धरण डाल करने के लिए शेष रेखाएं
आपका अंतिम उदाहरण विजुअल ब्लॉक के साथ आसान हो सकता है: स्क्रिप्ट की शुरुआत पर जाएं। ब्लॉक चयन का आह्वान करने के लिए 'Ctrl-v' या' Ctrl-q' का उपयोग करें। अंतिम पंक्ति में जाने के लिए '6j' दबाएं। लाइन के अंत में चयन करने के लिए '$' दबाएं। प्रारंभ उद्धरण डालने के लिए 'I"
@pydave: यह अच्छा है। मैंने सोचा कि शायद एक तेज रास्ता था। मैं vim emulation के साथ SlickEdit का उपयोग कर रहा हूं, और यह चाल मेरे लिए काम नहीं करती है (लेकिन ऐसा इसलिए हो सकता है क्योंकि मैं पुराने संस्करण का उपयोग कर रहा हूं)। विम इम्यूलेशन के साथ कुछ समस्याएं हैं जिन्हें मुझे पसंद नहीं है, लेकिन SlickEdit में टैगिंग कार्यक्षमता वास्तव में अच्छी है और इसके कुछ क्विर्क इसके लायक बनाती हैं। –
एक और तरीका: ':, + 6s/.*/" और \\ n "' या 'V6j: s /.*/" और \\ n "' ('&' प्रतिस्थापन भाग में मिलान किए गए पैटर्न के साथ प्रतिस्थापित किया गया है)। – Benoit
, मैं अक्सर यह जब को हटाने का उपयोग करें:
iSomeText:[Esc]j.j.j.
:
dw...
dd...
और जब एकाधिक पंक्तियों में एक कार्रवाई दोहरा
यह क्लासिक उदाहरण की तरह है। लेकिन क्यों न सिर्फ 'yy' और 'p' कई गुना करते हैं? – rhinoinrepose
ठीक है, यह उन आदेशों के लिए काम नहीं करता है जो एकाधिक कीस्ट्रोक का उपयोग करते हैं, जैसे 'iSomeText [Esc]' या 'cereplacement [Esc]' (अन्य उत्तर से)। 'पी' के मामले में, आप सही हैं, बस इसके बजाय 'p' दोहराएं। – paulmelnikow
अपने आखिरी उदाहरण के लिए, कभी-कभी आप कुछ पंक्तियों के लिए कॉलम चुनने के लिए ब्लॉक चयन का उपयोग कर सकते हैं और I या A. का उपयोग 'Ctrl + vjjjISomeTextEsc'' कर सकते हैं। हालांकि डॉट का महान उपयोग। –
do_something();
do_another();
third_option();
अब कर्सर के साथ पहली पंक्ति में: A<bs><cr>{<cr><cr>}<cr>
। अब मारा j.j.
और
do_something()
{
}
do_another()
{
}
third_option()
{
}
मेरे सबसे सामान्य उदाहरण
>%...
या सिर्फ कई चर के सामने (char *)
डालने की तरह एक विशेष पाठ परिवर्तन फिर से कर पाठ का मांगपत्र स्तर बदल रहे हैं:
i(char *)<Esc>jjjwwww.jjjbb.
(या जो कुछ भी)
सभी अन्य उत्तरों अच्छे उदाहरण प्रदान करते हैं, मैं बस dot
जोड़ना चाहता हूं क्योंकि यह आपके आखिरी कुंजी संयोजन के लिए एक स्वचालित मैक्रो है जो केवल एक कुंजी दूर है।
जबकि मैक्रो महान हैं, वे उपयोग करने के लिए थोड़ा बोझिल हैं, जबकि dot
हमेशा कम शक्तिशाली होने पर भी उपलब्ध है।
मेरे लिए डॉट कमांड तब तक हिट या मिस था जब तक कि मैंने किसी आवृत्ति के साथ मैक्रोज़ रिकॉर्ड करना शुरू नहीं किया। उपयोगी मैक्रोज़ रिकॉर्ड करने की चाल समस्या को दोहराने योग्य चरणों के रूप में प्रस्तुत करना है। कभी-कभी डॉट एकमात्र चीज है जो कम से कम समस्या को और अधिक आसान बनाती है।
इसके अलावा, डॉट कमांड का उपयोग करके आप उन कुछ कमांड का उपयोग करने के लिए मजबूर होंगे जिनकी आपको पहले की आवश्यकता नहीं है: cw ct; सीआई "सीए) क्योंकि वे टेक्स्ट के डिलीट/चेंज को एक" एक्शन "में गिरा देते हैं जो डॉट द्वारा दोहराने योग्य है।
इसके अलावा, डॉट के अतिरिक्त भी है; जो मैं बहुत कम बार उपयोग करता हूं लेकिन जब मैं इसे बहुत उपयोगी करता हूं जो अंतिम पाठ गति को दोहराता है। डब्ल्यू और बी जैसी चीजों के लिए उपयोगी नहीं है लेकिन एफ जैसी चीजों के लिए; यह एक अच्छी छोटी सी चाल है।
जब आप यह बदलने की आवश्यकता:
instance Movable Position where
(x,y) --> Left = (x-1,y)
(x,y) --> Right = (x+1,y)
(x,y) --> Up = (x,y-1)
(x,y) --> Down = (x,y+1)
इस में:
instance Movable Position where
Position(x,y) --> Left = Position(x-1,y)
Position(x,y) --> Right = Position(x+1,y)
Position(x,y) --> Up = Position(x,y-1)
Position(x,y) --> Down = Position(x,y+1)
आप बाईं 'स्थिति' और सही के लिए एक बिंदु के लिए दृश्य ब्लॉक चयन का उपयोग करेंगे।
- 1. क्या कोई बता सकता है कि स्केल
- 2. क्या कोई मुझे बता सकता है कि ब्राउज़र में यह एक्सएसएस वेक्टर क्यों काम करता है?
- 3. क्या कोई बता सकता है कि फास्टटैग
- 4. सी # - क्या कोई मुझे बता सकता है कि मुझे प्रतिनिधियों का उपयोग क्यों करना चाहिए?
- 5. क्या कोई मुझे बता सकता है कि यह दुर्भावनापूर्ण क्यों है ..?
- 6. क्या कोई मुझे बता सकता है कि प्राथमिक कुंजी वास्तव में क्या करती है?
- 7. क्या कोई मुझे बता सकता है कि यह GetCardinality विधि क्या कर रही है?
- 8. क्या कोई मुझे बता सकता है जब यह MapMaker या WeakHashMaps का उपयोग करने में उपयोगी होता है?
- 9. क्या कोई मुझे बता सकता है कि यह कौन सी भाषा है?
- 10. क्या कोई फॉर्म बता सकता है कि क्या कोई मोडल विंडो खुलती है?
- 11. क्या कोई बता सकता है कि सी में क्या डुप्ली() करता है?
- 12. क्या वीआईएम में कोई ब्लॉक पूर्ववत है?
- 13. कोई बता सकता है कि यह jQuery UI Datepicker में क्यों है?
- 14. डॉट कमांड दोहराना क्या कर सकता है, बिल्कुल?
- 15. क्या कोई तरीका है कि मैं बता सकता हूं कि स्क्रीन को दबाया जा रहा है
- 16. क्या कोई बता सकता है कि सी # "Func <T,T>" क्या करता है?
- 17. EXC_BAD_ACCESS इतना असहनीय क्यों है?
- 18. क्या कोई मुझे धागे समझा सकता है?
- 19. क्या कोई यह बता सकता है कि यह सी एक लाइनर क्या करता है?
- 20. खिड़की बंद क्यों नहीं किया जा रहा है, क्या कोई मुझे इस बारे में थोड़ा और बता सकता है?
- 21. क्या कोई बता सकता है कि मेरे रिश्तों के साथ क्या गलत है?
- 22. क्या कोई बता सकता है कि क्यों "एनएच-चाइल्ड" -इलेक्टर की "होवर" की तुलना में उच्च प्राथमिकता है?
- 23. क्या कोई बता सकता है कि टीसीपी में टीएसओ/एलआरओ हार्डवेयर फ़ंक्शन क्या हैं?
- 24. क्या ऑपरेटिंग सिस्टम मुझे बता सकता है कि एक नई फाइल कब बनाई जाती है?
- 25. क्या कोई भी Google Guice उपयोगी क्यों है इसका स्पष्ट स्पष्टीकरण प्रदान कर सकता है?
- 26. Thread.stop() इतना खतरनाक क्यों है
- 27. $ _POST में स्ट्रिंग्स में डॉट "।" क्यों नहीं हो सकता है?
- 28. क्या कोई बता सकता है कि किस संदेश दलाल के लिए उपयोग किया जाता है?
- 29. कोई बता सकता है कि दृश्यों के पीछे क्या हो रहा है?
- 30. क्या कोई मुझे एक jQuery मोडल डायलॉग बॉक्स लाइब्रेरी के बारे में बता सकता है जो
मैंने वीआई का उपयोग किया है क्योंकि पहले से मौजूद है और इसका उपयोग किया है। बहुत कम आदेश, लेकिन मैंने कभी भी किसी को भी कितना भयानक नहीं सुना है। शायद मैं सही प्रशंसक पृष्ठों को नहीं पढ़ रहा हूं। –
मैंने हाल ही में 'प्रैक्टिकल विम द्वारा ड्रू नील' पढ़ना शुरू कर दिया है। पुस्तक की अवधारणा के साथ शुरू होता है। ऑपरेटर, और आपको यह समझने की कोशिश करता है कि यह क्यों सोच रहा है यह आपकी उत्पादकता के लिए फायदेमंद हो सकता है। शायद एक नज़र डालें। – eugenevd