2012-01-18 15 views
28

से yank कैसे करें मुझे आश्चर्य है कि अगर मैंने vim से कमांड लाइन में लिखा है, तो मैं इसे फिर से पेस्ट कर सकता हूं।कमांड लाइन

यह विशेष रूप से उपयोगी होगा क्योंकि मैं अक्सर उन्हें पहले खोजकर खोज/प्रतिस्थापित पैटर्न का प्रयास करता हूं और - यदि वे मुझे जो चाहिए उससे मेल खाते हैं - मैं केवल उस खोजी अभिव्यक्ति को कमांड लाइन से कॉपी करने में सक्षम होना चाहता हूं और इसे मेरी खोज/प्रतिस्थापन फ़ंक्शन में उपयोग करें।

मुझे पहले से ही पता है कि आप <ctrl-r><buffer> का उपयोग कर कमांड विंडो में पेस्ट कर सकते हैं और मुझे आश्चर्य है कि इस तरह के एक कमांड है जो मेरी पूरी कमांड विंडो को यंक करेगा।

+0

विम प्रश्न आम तौर पर विषय पर होते हैं। इसके बारे में बहुत सी चर्चा हुई है। Http://meta.stackexchange.com/questions/25925/vim-questions-so-or-su देखें उदाहरण के लिए यह एक अच्छा है। – lucapette

उत्तर

45

आप command line window का उपयोग कर सकते हैं। q + : इसे खोलने के लिए उपयोग करें। फिर आप खिड़की को सामान्य के रूप में नेविगेट कर सकते हैं और जो भी आप चाहते हैं उसे यंक कर सकते हैं।

+14

आखिरकार मुझे पता है कि वह खिड़की क्या है - मैंने कभी-कभी इसे छोड़ने की कोशिश करते समय दुर्घटना से इसे खोला। – BergmannF

+1

हां, बिल्कुल। मुझे याद है कि यह पहली बार मेरे साथ हुआ था और मैं "वह क्या है?" जैसा था :) – lucapette

+12

आप इसी तरह से खोज इतिहास तक पहुंचने के लिए 'q /' का भी उपयोग कर सकते हैं। यह तब उपयोगी होता है जब आप खोज पैटर्न को समायोजित/परिष्कृत करने का प्रयास कर रहे होते हैं। –

12

विम : रजिस्टर में हाल ही में दर्ज की गई कमांड को स्टोर करता है और हाल ही में / रजिस्टर में सबसे हाल ही में खोज की गई अभिव्यक्ति को संग्रहीत करता है। चूंकि आप पहले से ही कमांड विंडो में पेस्ट करने के बारे में जानते हैं, इसलिए आप जो भी आखिरी बार खोज चुके हैं उसे पेस्ट करने के लिए बस <Ctrl-R>/ टाइप कर सकते हैं।

+5

इसमें जोड़ने के लिए, vim '/' रजिस्टर की सामग्री का उपयोग करने के लिए पर्याप्त स्मार्ट है यदि आप बस 'विकल्प' कमांड में खोज पैटर्न छोड़ देते हैं। उदाहरण के लिए यदि आपने 'foo' की खोज की है, तो' s // bar' vim 'foo' को 'bar' के साथ प्रतिलिपि या चिपकाने के बिना प्रतिस्थापित करेगा। –

6

अन्य तरीके:

  • CTRL-F मारा अगर 'cedit' विकल्प अधिरोहित नहीं किया गया है, जबकि आदेश पंक्ति में प्रवेश। फिर आपके पास इसे संपादित करने के लिए सामान्य मोड के सबसेट तक पहुंच है। :help 'cedit'
  • यदि आपको अंतिम कमांड लाइन दर्ज करने की आवश्यकता है तो आप :put : (डेविड ब्राउन के उत्तर का संस्करण और अंतिम आदेश वाले कोलन रजिस्टर पर भरोसा कर सकते हैं) का उपयोग कर सकते हैं।