मैं अपने "खोजने और बदलने के लिए" वर्कफ़्लो को विम में ऑप्टिमाइज़ करना चाहूंगा। यह कुछ ऐसा है जो मैं अक्सर करता हूं, क्योंकि मुझे यकीन है कि आप में से अधिकांश भी करते हैं। आमतौर पर कुछ की तर्ज पर - एक ब्लॉक की प्रतिलिपि बनाएँ और कुछ स्थानों में एक चर का नाम बदलें। मुझे पता है, मुझे पता है, कि शायद आपके "ट्रिगर क्यों हो रहे हैं और कोड चिपका रहे हैं" पलटा, लेकिन चलो उस सड़क से नीचे नहीं जाते ... बहुत सारे वैध उपयोग के मामले हैं :)
मैं खोज के बारे में अच्छी तरह से वाकिफ हूँ और आज्ञाओं को प्रतिस्थापित कर रहा हूँ: :s
या :%s
मैं उन्हें पसंद नहीं करता। यह मुझे उस पूर्ण चर नाम को टाइप करने के लिए बाध्य करता है जिसे मैं खोज रहा हूं और मैं इसे किसके लिए बदल रहा हूं। हो सकता है कि टाइपिंग की मात्रा तय करने का एक बेहतर तरीका हो :%s
? मैं अक्सर लंबे वर्णनात्मक चर नामों का उपयोग करता हूं, इसलिए यह वास्तव में मेरे लिए एक सौदा ब्रेकर है। मुझे यह भी पसंद नहीं है कि स्क्रैच से एक चर नाम टाइप करना कैसे टाइपो प्रवण है और टाइपो नीचे शिकार समय और ब्रेनपावर का उपभोग कर सकता है। मैं इसे एक बार टाइप करना पसंद करता हूं, और फिर इसे कॉपी करना और चिपकाना सिर्फ अगर संभव हो तो इससे पूरी तरह से बचना चाहिए।
मेरे वर्तमान वर्कफ़्लो आंदोलन के कुछ संयोजन का उपयोग करता है / yank / select / search / फ़ाइल के चारों ओर घूमने और एक-एक करके बदलने के लिए डाला जाता है। यह बहुत अच्छा नहीं है लेकिन पूर्ण चर नामों को टाइप करने से बचने का लाभ है। मुझे बस पहले कुछ अक्षरों को टाइप करने की जरूरत है /
या दूसरे आंदोलन कमांड (जैसे fx
) का उपयोग करने के लिए जो कि आस-पास है और उसके बाद ve
पूरे शब्द का चयन करने के लिए मारा जा सकता है। मुझे भी कोई आपत्ति नहीं है कि मुझे हर उदाहरण के लिए दोहराना है। मैं प्रत्येक परिवर्तन की पुष्टि किए बिना कभी भी पूर्ण खोज नहीं करता हूं। लेकिन यह बहुत बेहतर होगा यदि मैं एक कीस्ट्रोके के साथ प्रतिस्थापन की कार्रवाई को दोहरा सकता हूं (जो मैं इस पद्धति के साथ नहीं कर सकता)। प्रत्येक प्रतिस्थापन आमतौर पर की तरह कुछ है n
तो ve
उसके बाद p
(या भी बदतर "0p
)
क्या कोई तेज़ तरीका है?
n
ve
"0p
। जो दुर्भाग्य से सिर्फ एक के साथ दोहराया नहीं जा सकता है.
n ce ctrl-r 0 <esc> n.n.n.n.n.n.
.
पिछले "कमांड ब्लॉक" को दोहराता है (सटीक शब्द के बारे में निश्चित नहीं। उदाहरण के लिए: हटो + क्रिया + पाठ। उदाहरण के लिए:cwtoto<Esc>
(कर्सर से शब्द के अंत तक "टोटो" के साथ),c/foo<enter>bar<Esc>
(कर्सर से सिर्फ पहले से परिवर्तन ) फू ", और" बार "से बदल दें)। फिर आप स्थानांतरित कर सकते हैं (कर्सर के साथ, hjkl, या एक नंबर + hjkl (यह n बार करता है), G (फ़ाइल के अंत में जाएं), / कुछ (पहले बस जाएं) कुछ "), आदि) और फिर.
उसी" कमांड ब्लॉक "को फिर से प्रेस करने के लिए दबाएं