Yanked text को Vim कमांड लाइन में कैसे पेस्ट करें


601

मैं याम के कमांड लाइन में टेक्स्ट को पेस्ट करना चाहता हूं। क्या यह संभव है?


सीधे yanked पाठ को निष्पादित करने के एक विशेष मामले के लिए, देखें: आप एक vim कमांड कैसे चलाते हैं जो एक बफर के अंदर का पाठ है? - सुपर यूजर
user202729

जवाबों:


1157

हाँ। हिट Ctrl- Rतो "। यदि आपके पास शाब्दिक नियंत्रण वर्ण हैं जो आपने yanked हैं, तो उपयोग करें Ctrl- R, Ctrl- O, - "

यहाँ एक विवरण है कि आप रजिस्टरों के साथ क्या कर सकते हैं। आप रजिस्टर के साथ क्या कर सकते हैं असाधारण है, और एक बार जब आप जानते हैं कि उनका उपयोग कैसे करना है तो आप उनके बिना नहीं रह सकते।

रजिस्टरों मूल रूप से स्ट्रिंग्स के लिए भंडारण स्थान हैं। विम के कई रजिस्टर हैं जो विभिन्न तरीकों से काम करते हैं:

  • 0(yank रजिस्टर: जब आप yसामान्य मोड में उपयोग करते हैं, तो एक रजिस्टर को निर्दिष्ट किए बिना, yanked पाठ वहां जाता है और डिफ़ॉल्ट रजिस्टर पर भी जाता है),
  • 1करने के लिए 9(स्थानांतरण हटाने रजिस्टर, जब आप इस तरह के रूप आदेशों का उपयोग cया d, क्या हटा दिया गया है 1 रजिस्टर करने के लिए चला जाता है, क्या रजिस्टर 1 में था 2 रजिस्टर करने के लिए, चला जाता है आदि ),
  • "(डिफ़ॉल्ट रजिस्टर, जिसे अनाम रजिस्टर के रूप में भी जाना जाता है। यह वह जगह है जहां "आता है Ctrl- R, "),
  • aकरने के लिए zअपने स्वयं के उपयोग के लिए (पूंजीकृत Aकरने Zके लिए इसी रजिस्टरों को जोड़कर कर रहे हैं)।
  • _(कृत्यों की तरह /dev/null(यूनिक्स) या NUL(विंडोज), आप इसे लिख सकते हैं लेकिन यह खारिज हो गया है और जब आप इसे पढ़ते हैं, तो यह हमेशा खाली होता है),
  • - (छोटा डिलीट रजिस्टर),
  • /(खोज पैटर्न रजिस्टर, अद्यतन है जब आप के साथ पाठ के लिए देखो /, ?, *या #उदाहरण के लिए, आप भी इसे करने के लिए लिख सकते हैं ऐसे खोज पैटर्न बदलने के लिए),
  • :(स्टोर अंतिम VimL टाइप कमांड के माध्यम से Qया :, आसानी से),
  • +और *(सिस्टम क्लिपबोर्ड रजिस्टर, आप क्लिपबोर्ड सेट करने के लिए उन्हें लिख सकते हैं और उनसे क्लिपबोर्ड सामग्री पढ़ सकते हैं)

:help registersपूरा संदर्भ देखें ।

आप किसी भी समय, :registersसभी रजिस्टरों की सामग्री को प्रदर्शित करने के लिए उपयोग कर सकते हैं। इस आदेश के लिए पर्यायवाची और आशुलिपि हैं :display, :regऔर :di

सम्मिलित या कमांड-लाइन मोड में, Ctrl- Rएक रजिस्टर नाम, इस रजिस्टर की सामग्री सम्मिलित करता है। यदि आप उन्हें शाब्दिक रूप से सम्मिलित करना चाहते हैं (कोई ऑटो-इंडेंटिंग, 0x08बैकस्पेस, आदि जैसे नियंत्रण वर्णों का कोई रूपांतरण नहीं ), तो आप Ctrl- R, Ctrl- O, रजिस्टर नाम का उपयोग कर सकते हैं । :help i_CTRL-Rअधिक संदर्भ के लिए पैराग्राफ देखें और उनका पालन करें।

लेकिन आप निम्नलिखित भी कर सकते हैं (और मैं रजिस्टरों के लिए कई उपयोग भूल गया)।

  • सामान्य मोड में, हिट ":p। आपके द्वारा उपयोग किए गए अंतिम आदेश को आपके बफर में चिपकाया जाता है।
    आइए विघटित करें: "एक सामान्य मोड कमांड है जो आपको यह चुनने देता है कि अगले यैंक के दौरान क्या रजिस्टर का उपयोग किया जाना है, हटाएं या पेस्ट करें। इसलिए ":कोलन रजिस्टर (अंतिम कमांड को स्टोर करना) का चयन करता है। फिर pएक कमांड है जिसे आप पहले से जानते हैं, यह रजिस्टर की सामग्री को चिपका देता है।

    सीएफ :help ",:help quote_:

  • आप VimL फ़ाइल का संपादन कर रहे हैं (उदाहरण के लिए .vimrc) और अभी कुछ लाइनों को निष्पादित करना चाहते हैं yj:@"Enter:।
    यहाँ, yjyanks करंट और नेक्स्ट लाइन (ऐसा इसलिए है क्योंकि j एक linewise motion है लेकिन यह इस आंसर की के दायरे से बाहर है) डिफ़ॉल्ट रजिस्टर (अनाम रजिस्टर के रूप में भी जाना जाता है) में। तब :@Ex कमांड तर्क के रूप में दिए गए रजिस्टर में Ex कमांड को प्ले करता है, और "यह है कि आप अनाम रजिस्टर को कैसे देखें। इस उत्तर के शीर्ष को भी देखें, जो संबंधित है।

    पिछले उदाहरण से, जो कि एक सामान्य-मोड कमांड था, "यहां इस्तेमाल किए जाने वाले भ्रम (जो एक रजिस्टर नाम है) को भ्रमित न करें "

    सीएफ :help :@तथा:help quote_quote

  • अपनी फ़ाइल में अंतिम खोज पैटर्न सम्मिलित करें मोड में, या कमांड लाइन में, Ctrl- R, के साथ डालें /

    सीएफ :help quote_/,help i_CTRL-R

    परिणाम: आपकी खोज पैटर्न रखें लेकिन एक विकल्प जोड़ें: / Ctrl- R, / \|alternative

  • आपने दृश्य मोड में एक पंक्ति के बीच में दो शब्दों का चयन किया है, उनके साथ yanked है y, वे अनाम रजिस्टर में हैं। अब आप नीचे एक नई लाइन खोलना चाहते हैं जहाँ आप हैं, उन दो शब्दों के साथ :pu:। इसके लिए आशुलिपि है :put ":putआदेश, कई पूर्व आदेशों की तरह, सिर्फ linewise काम करता है।

    सीएफ :help :put

    तुम भी कर सकते थे: :call setreg('"', @", 'V')तब psetregसमारोह रजिस्टर जिनमें से नाम (स्ट्रिंग के रूप) पहले तर्क के रूप में दिया जाता है निर्धारित करता है, दूसरा तर्क की सामग्री के साथ यह initializes (और आप नाम के साथ चर के रूप में रजिस्टर का उपयोग कर सकते @xहैं जहां xVimL में रजिस्टर नाम है), और इसे तीसरे तर्क में निर्दिष्ट मोड में बदल दिया जाता है, Vलिनेविज़ के लिए, ब्लॉकवाइज़ के लिए चरित्रवान और शाब्दिक के ^Vलिए कुछ भी नहीं ।

    सीएफ :help setreg()। रिवर्स कार्य हैं getreg()और getregtype()

  • यदि आपने मैक्रो को qa... के साथ रिकॉर्ड किया है q, तो :echo @aआपको बताएगा कि आपने क्या टाइप किया है, और @aमैक्रो को फिर से चलाएंगे (शायद आप जानते थे कि दोहराए जाने वाले कार्यों से बचने के लिए बहुत उपयोगी है)

    सीएफ :help q,help @

    पिछले उदाहरण से कोरोलरी: यदि आपके पास 8goक्लिपबोर्ड है, तो @+क्लिपबोर्ड सामग्री को मैक्रो के रूप में चलाएगा, और इस तरह आपकी फ़ाइल के 8 वें बाइट पर जाएगा। दरअसल यह लगभग हर रजिस्टर के साथ काम करेगा। यदि आपकी अंतिम सम्मिलित स्ट्रिंग ddसम्मिलित मोड में थी, तो @.होगा (क्योंकि .रजिस्टर में अंतिम सम्मिलित स्ट्रिंग है) एक पंक्ति हटाएं। (विम प्रलेखन, इस संबंध में गलत है, क्योंकि यह कहा गया है कि रजिस्टरों #, %, :और .होगा के साथ ही काम p, P, :putऔर Ctrl- R)।

    सीएफ :help @

    भ्रमित न करें :@(कमांड जो एक रजिस्टर से विम कमांड निभाता है) और @(सामान्य-मोड कमांड जो रजिस्टर से सामान्य-मोड कमांड निभाता है)।

    उल्लेखनीय अपवाद है @:। कमांड रजिस्टर में प्रारंभिक बृहदान्त्र नहीं होता है और न ही इसमें अंतिम कैरिज रिटर्न होता है। हालाँकि, सामान्य मोड में, @:वही करेंगे जो आप उम्मीद करते हैं, रजिस्टर को एक्स कमांड के रूप में व्याख्या करना, इसे सामान्य मोड में चलाने की कोशिश न करना। इसलिए यदि आपकी अंतिम कमांड थी :e, तो रजिस्टर में फ़ाइल है, eलेकिन @:फाइल को फिर से लोड किया जाएगा, शब्द के अंत तक नहीं।

    सीएफ :help @:

  • दिखाएं कि आपने क्या चलाने से पहले सामान्य मोड में कर रही होगी: @='dd' Enter। जैसे ही आप =कुंजी को मारते हैं , विम अभिव्यक्ति मूल्यांकन पर स्विच करता है: जैसे ही आप एक अभिव्यक्ति दर्ज करते हैं और हिट करते हैं Enter, विम इसकी गणना करता है, और परिणाम रजिस्टर सामग्री के रूप में कार्य करता है। बेशक रजिस्टर =केवल-पढ़ने के लिए है, और एक-शॉट है। हर बार जब आप इसका उपयोग करना शुरू करते हैं, तो आपको एक नई अभिव्यक्ति दर्ज करनी होगी।

    सीएफ :help quote_=

    कोरोलरी: यदि आप एक कमांड का संपादन कर रहे हैं, और आपको पता है कि आपको अपने कमांड लाइन में अपने वर्तमान बफर से कुछ लाइन डालने की आवश्यकता नहीं है Esc! का प्रयोग करें Ctrl- R =getline(58) Enter। उसके बाद आप कमांड लाइन एडिटिंग में वापस आ जाएंगे, लेकिन इसमें 58 वीं लाइन की सामग्री डाली गई है।

  • मैन्युअल रूप से खोज पैटर्न को परिभाषित करें: :let @/ = 'foo'

    सीएफ :help :let

    ध्यान दें कि ऐसा करने के लिए, आपको /पैटर्न में भागने की आवश्यकता नहीं है । हालाँकि आपको पाठ्यक्रम के सभी एकल उद्धरणों को दोगुना करने की आवश्यकता है।

  • के साथ शुरुआत सभी पंक्तियों की प्रतिलिपि foo, और बाद में सभी लाइनों युक्त barक्लिपबोर्ड, चेन के लिए इन कमांड: qaq(फिर सेट करता है एक रजिस्टर इसके अंदर एक खाली मैक्रो भंडारण), :g/^foo/y A, :g/bar/y A, :let @+ = @a

    कैपिटल रजिस्टर नाम का उपयोग करके रजिस्टर मोड में रजिस्टर का काम करता है

    बेहतर है, यदि Qइसके द्वारा रीमैप नहीं किया गया है mswin.vim, तो एक्स मोड को Qउन "कोलन कमांड" के साथ शुरू करें , जिन्हें वास्तव में "एक्सट कमांड" कहा जाता है, और टाइप करके सामान्य मोड में वापस जाएं visual

    सीएफ :help :g, :help :y,:help Q

  • अपनी फ़ाइल को डबल-स्पेस करें :g/^/put _:। यह /dev/nullप्रत्येक पंक्ति के बाद (क्योंकि हर पंक्ति में एक शुरुआत है!) , ब्लैक होल रजिस्टर की सामग्री को डालता है (पढ़ने के समय खाली, लेकिन व्यवहार करने योग्य )।

  • fooप्रत्येक पंक्ति से पहले एक पंक्ति जोड़ें :g/^/-put ='foo':। यह अभिव्यक्ति रजिस्टर का एक चतुर उपयोग है। यहाँ, (cf. ) के -लिए एक समानार्थी शब्द है । चूंकि पंक्ति के बाद पाठ डालता है, इसलिए आपको इसे पिछले एक पर कार्रवाई करने के लिए स्पष्ट रूप से बताना होगा।.-1:help :range:put

  • पूरे क्लिपर को सिस्टम क्लिपबोर्ड पर कॉपी करें :%y+:।

    सीएफ :help :range( %भाग के लिए) और :help :y

  • यदि आपने किसी मैक्रो को गलत तरीके से बनाया है, तो आप इसे टाइप कर सकते हैं :let @a=' Ctrl- R =replace(@a,"'","''",'g') Enter 'और इसे संपादित कर सकते हैं । यह रजिस्टर में संग्रहीत मैक्रो की सामग्री को संशोधित करेगा a, और यह यहां दिखाया गया है कि आप ऐसा करने के लिए अभिव्यक्ति रजिस्टर का उपयोग कैसे कर सकते हैं।

  • यदि आपने किया dddd, तो आप uuपूर्ववत करने के लिए कर सकते हैं। आपके साथ pअंतिम हटाई गई पंक्ति प्राप्त कर सकते हैं लेकिन वास्तव में आप रजिस्टर के @1माध्यम से 9 हटाए जाने तक भी पुनर्प्राप्त कर सकते हैं @9

    इससे भी बेहतर, यदि आप करते हैं "1P, तो .सामान्य मोड में खेलेंगे "2P, और इसी तरह।

    सीएफ :help .तथा:help quote_number

  • यदि आप इन्सर्ट मोड में करंट डेट डालना चाहते हैं: Ctrl- R=strftime('%y%m%d')Enter

    सीएफ :help strftime()

एक बार फिर, क्या भ्रमित हो सकता है:

  • :@ एक कमांड-लाइन कमांड है जो एक रजिस्टर की सामग्री को विम्सस्क्रिप्ट के रूप में व्याख्या करता है और इसे स्रोत करता है
  • @ सामान्य मोड कमांड में जो किसी रजिस्टर की सामग्री को सामान्य-मोड कीस्ट्रोक्स के रूप में व्याख्या करता है (जब आप :रजिस्टर का उपयोग करते हैं, जिसमें प्रारंभिक कॉलोन के बिना अंतिम खेला गया कमांड शामिल होता है: इस मामले में यह कमांड को फिर से टाइप करता है जैसे कि आपने कोलन को फिर से टाइप किया है। अंतिम वापसी कुंजी)।

  • " सामान्य मोड कमांड में, जो आपको यैंक, पेस्ट, डिलीट, सही, आदि के लिए रजिस्टर चुनने में मदद करता है।

  • " एक वैध रजिस्टर नाम (डिफ़ॉल्ट, या अनाम, रजिस्टर) भी है और इसलिए उन कमांड के लिए एक तर्क के रूप में पारित किया जा सकता है जो नाम रजिस्टर करने की उम्मीद करते हैं

205
क्या उत्तर और प्रश्न के बीच "100/1 लंबाई अनुपात नहीं है?" :)
बेनोइट

8
यह एक महान उत्तर है, लेकिन यह लगभग 1400 से कम 900 शब्दों का है। :)

19
इस उत्तर ने मेरे उपयोग के तरीके को बदल दिया है। धन्यवाद बेनोइट
पी। मायर नोर

11
मत भूलना: reg जो उनकी सामग्री के साथ सभी रजिस्टरों को सूचीबद्ध करेगा
यूगनेव्ड

3
विम के हाल के संस्करणों में, हटाई गई संख्याएं जो एक पंक्ति से छोटी हैं, गिने हुए रजिस्टरों में जाने के बजाय "छोटे विलोपन रजिस्टर" में जाती हैं। संदर्भ: वीआई और विम , वीआई एंड विम , रेडिट
क्रिश्चियन लॉन्ग

48

कुछ ऐसा चिपकाने के लिए जो सिस्टम क्लिपबोर्ड है, जिसका आप उपयोग कर सकते हैं SHIFT- INS

यह विंडोज में काम करता है, लेकिन मुझे लगता है कि यह लिनक्स में भी अच्छा काम करता है।


7
हाँ, लिनक्स में भी काम करता है। Vim और GVim दोनों में GNOME के ​​तहत परीक्षण किया गया।
तेउलास

3
यह वास्तव में कीबोर्ड इनपुट के रूप में पेस्टबोर्ड को विम को खिलाता है, इसलिए यदि आप सामान्य मोड और पेस्ट में हैं :!rm -rf /<cr>, तो यह उस पर अमल करेगा। इसके बजाय रजिस्टर का उपयोग करें!
lericson

4
@lericson क्या मैंने अपने जवाब में यह नहीं कहा कि यह सिस्टम कीबोर्ड में मौजूद किसी चीज़ के लिए उपयोगी है? मुझे समझ में नहीं आता है। और आप उदाहरण के लिए, गंभीरता से? तुम सच में क्लिपबोर्ड में है? और आपको नहीं लगता कि टाइपिंग shift-insकी तुलना में आसान है ctrl-R+*? यह निश्चित रूप से है अगर आप gvim में हैं। यदि आप किसी अन्य मशीन से जुड़े टर्मिनल में हैं और आप अपने क्लिपबोर्ड से कुछ पेस्ट करना चाहते हैं तो क्या आप कुछ बेहतर जानते हैं shift-ins? क्योंकि रजिस्टर उस स्थिति में काम नहीं करते हैं। कृपया टिप्पणी करने से पहले सोचें और अन्य काम करें (जैसे डाउनवोटिंग)।
कंकाल

मुझे लगता है कि यह गलत सूचना है और मैंने उस निर्णय पर काम किया है।
lericson

1
मेरे लिए काम नहीं करता है। मुझे बस अपनी कमांड लाइन में '<S-Insert>' मिलाया गया है। शायद मुझे कुछ याद आ रहा है। (उबंटू 19.04 / 2: 8.1.0320-1ubuntu3.1)।
मैक्स वाटरमैन

39

"मैं yanked पाठ को Vim कमांड लाइन में पेस्ट करना चाहता हूं।"

जबकि शीर्ष मतदान का उत्तर बहुत ही पूर्ण है, मैं कमांड इतिहास का संपादन करना पसंद करता हूं।

सामान्य मोड में, टाइप करें q::। यह आपको सामान्य विम आदेशों के साथ हाल ही के आदेशों, संपादन योग्य और खोज योग्य की एक सूची देगा। आप नीचे एक रिक्त कमांड लाइन पर शुरू करेंगे।

उस सटीक चीज़ के लिए जिसे लेख पूछता है, एक कमांड लाइन में एक यैंक्ड लाइन (या कुछ भी) को चिपकाते हुए, अपना टेक्स्ट यैंक करें और फिर: q:p(कमांड हिस्ट्री एडिट मोड में प्राप्त करें, और फिर (p) अपने यॉन्क्ड टेक्स्ट को एक नए कमांड में डालें। enterनिष्पादित करने के लिए , इच्छा पर संपादित करें ।

कमांड इतिहास मोड से बाहर निकलने के लिए, यह विपरीत है। कमांड इतिहास में सामान्य मोड में, टाइप करें: :q+enter


1
यदि आप पहले से ही किसी मौजूदा कमांड को संशोधित कर रहे हैं और 'q:' नहीं दबाया तो ctrl + f दबाएं और यह कमांड हिस्ट्री को एडिट करने की क्षमता को बढ़ा देगा।
क्ले

14

सिस्टम क्लिपबोर्ड से Vim कमांड लाइन ("कमांड मोड") में कुछ चिपकाने के लिए, उसके बाद Ctrl+ का उपयोग करें । मेरे लिए, कम से कम उबंटू पर, + काम नहीं कर रहा है।R+ShiftIns

पुनश्च: मुझे यकीन नहीं है कि क्यों Ctrl+ Rउसके बाद *, जो सैद्धांतिक रूप से एक ही है Ctrl+ Rउसके बाद +हमेशा काम नहीं करता है। मैंने +संस्करण खोजा और खोजा और यह हमेशा काम करने लगता है, कम से कम मेरे बॉक्स पर।


2
Ctrl-r + और Ctrl-r * के बीच का अंतर यह है कि पूर्व नियमित क्लिपबोर्ड है, लेकिन लिनक्स में "प्राथमिक" नाम का एक दूसरा प्रकार का क्लिपबोर्ड है जो सबसे हाल ही में चयनित पाठ का प्रतिनिधित्व करता है (इसमें से मध्य बटन माउस पेस्ट) । यह विंडोज या मैक में उपलब्ध नहीं है
मटियास थायर

13

यह भी ध्यान देने योग्य है कि यैंक रजिस्टर मैक्रो बफ़र्स के समान हैं। दूसरे शब्दों में, आप अपने पूरे कमांड को अपने दस्तावेज़ में (अपने पेस्ट किए गए स्निपेट सहित) लिख सकते हैं, फिर "byइसे bरजिस्टर में जमा कर सकते हैं, और फिर इसे चला सकते हैं @b


1

मुझे इसी तरह की समस्या हो रही थी। मैं चयनित पाठ को एक कमांड में समाप्त करना चाहता था, लेकिन इसे चिपकाने पर निर्भर नहीं था। यहां वह कमांड है जिसके लिए मैं एक मैपिंग लिखने की कोशिश कर रहा था:

:call VimuxRunCommand("python")

इस प्लगइन के लिए डॉक्स केवल स्ट्रिंग शाब्दिक का उपयोग करके दिखाते हैं। यदि आप उस पाठ का चयन करने का प्रयास करेंगे, जिसमें डबलक्वाट शामिल हैं:

vnoremap y:call VimuxRunCommand("<c-r>"")<cr>

इसके आस-पास जाने के लिए, आप केवल मैक्रो की सामग्री का उपयोग करके देखें @:

vnoremap y:call VimuxRunCommand(@")<cr>

अनाम रजिस्टर की सामग्री को पास करता है और मेरे दोहरे उद्धरण और बहुस्तरीय edgecases के साथ काम करता है।


मुझे लगता है कि अपने पिछले उदाहरण है एक लापता "(@") शायद आप VimuxRunCommand का मतलब है। "।
kd8azz

यह @चरित्र को vimux कमांड को भेजता है। @निम्नलिखित दोहरे उद्धरण से बचने के बारे में सोचें और इसे एक नियमित चरित्र के बजाय एक रजिस्टर के रूप में माना जा रहा है। vnoremapमैं परिभाषित किया है दृश्य मोड में सक्रिय है, तो यह चयनित पाठ yanks, और फिर vimux आदेश में यह चिपकाता है, एक चल दुभाषिया के लिए यह एक बगल फलक में भेज दिया। एक स्क्रिप्ट पर काम करने और एक जोड़े कीस्ट्रोक्स के साथ इसके छोटे हिस्से का परीक्षण करने के लिए वास्तव में बहुत अच्छा है।
कॉनरैड.डीन

1

ओएस एक्स

यदि आप मैक ओएस एक्स में विम का उपयोग कर रहे हैं, तो दुर्भाग्य से यह पुराने संस्करण के साथ आता है, और क्लिपबोर्ड विकल्पों का अनुपालन नहीं किया जाता है। सौभाग्य से, Homebrew आसानी से इस समस्या को हल कर सकता है।

स्थापित करें विम:

brew install vim --with-lua --with-override-system-vi

विम का GUI संस्करण स्थापित करें:

brew install macvim --with-lua --with-override-system-vi

इसके प्रभावी होने के लिए टर्मिनल को फिर से शुरू करें।


निम्नलिखित लाइन को इसमें जोड़ें ~/.vimrc
set clipboard=unnamed

अब आप Vim में लाइन को कॉपी कर सकते हैं yyऔर इसे सिस्टम-वाइड पेस्ट कर सकते हैं ।


1

संदर्भ के लिए, यह जानकारी आउट-ऑफ-द-बॉक्स, कोई प्लगइन्स, नहीं .vimrc Vim 7.4 व्यवहार के साथ लिनक्स टकसाल में डिफ़ॉल्ट विकल्पों के साथ आती है।

आप हमेशा माउस के साथ पाठ का चयन कर सकते हैं (या "* रजिस्टर में चयन का उपयोग Vकर या कर सकते हैं v), और इसे Shift+ Ctrl+ के साथ कमांड में पेस्ट करें ।v

कमांड लाइन में Ctrl+ टाइप करने से rएक रजिस्टर नाम के लिए संकेत होगा। इसलिए टाइपिंग :CTRL-r*सामग्री रजिस्टर को कमांड लाइन में रखेगा। यह किसी भी रजिस्टर को पेस्ट करेगा, न कि सिर्फ * * :help c_CTRL-R

इसके अलावा, मध्य माउस बटन कमांड लाइन में पेस्ट होगा।

देख :help->quote-plusएक्स विंडो के चयन के साथ कैसे काम करता है, इसका विवरण । यहां तक ​​कि एक सादे, आउट-ऑफ-द-बॉक्स विम (फिर से, लिनक्स मिंट में विम 7.4 में, वैसे भी), बाईं माउस बटन के साथ किए गए किसी भी चयन को मध्य माउस बटन के साथ कमांड लाइन में चिपकाया जा सकता है।

इसके अलावा, मध्य माउस बटन भी विम में चयनित पाठ को कई अन्य एक्स विंडो अनुप्रयोगों, यहां तक ​​कि जीयूआई वाले (उदाहरण के लिए, फ़ायरफ़ॉक्स और थंडरबर्ड में पेस्ट करेगा) ) और कमांड लाइन में टेक्स्ट चिपकाना भी संभव है जहां टेक्स्ट अन्य ऐप से चुना गया था ।

देखें: मदद-> Add11 जानकारी के लिए x11- चयन।

tl; डॉ

कोशिश करें: CTRL-r दृष्टिकोण पहले, और फिर Shift+ Ctrl+ vया मध्य माउस बटन का उपयोग करें यदि आपको कुछ और चाहिए।

यह माना जाता है कि यह भ्रामक हो सकता है।


0
  1. "[a-z]y: [Az] रजिस्टर पर पाठ की प्रतिलिपि बनाएँ

  2. :!एडिट कमांड पर जाने के लिए उपयोग करें

  3. Ctrl+ R: आप जो कॉपी करते हैं उसे पेस्ट करने के लिए रजिस्टर पहचान का पालन करें।

इसका इस्तेमाल CentOS 7 के लिए किया गया था।


"इसका मतलब CentOS 7. से होता है।" ?
पीटर मोर्टेंसन

0

यदि आपके पास दो मान दो अलग-अलग रजिस्टरों (उदाहरण के लिए रजिस्टर aऔर रजिस्टर b) में yanked हैं, तो आप बस एक चर सेट कर सकते हैं cऔर उस पर ऑपरेशन कर सकते हैं।

उदाहरण के लिए, :set c = str2float(@a) + str2float(@b)और तब आप cकहीं भी सामग्री पेस्ट कर सकते हैं ।

INSERT मोड में उदाहरण के लिए, CTRL + Rफिर =अभिव्यक्ति रजिस्टर में प्रवेश करने के लिए टाइप cकरें और बराबर साइन के बाद टाइप करें और ENTER दबाएं। हो गया अब आपके पास कुल aऔर होना चाहिएb रजिस्टर ।

इन सभी को एक मैक्रो में रिकॉर्ड किया जा सकता है और दोहराया जा सकता है!

str2floatसमारोह यदि आप तैरता के साथ काम कर रहे हैं प्रयोग किया जाता है, यदि आप नहीं करते हैं, आप पूर्णांक के बजाय मिल जाएगा।

मुझे यकीन नहीं है कि यह मुहावरेदार है, लेकिन इसने मेरे मामले के लिए काम किया जहां मुझे एक पंक्ति में 2 नंबर जोड़ने और 500 और लाइनों के लिए इसे दोहराने की आवश्यकता थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.