मैं जीएनयू स्क्रीन के क्लिपबोर्ड बफर को टेक्स्ट कॉपी करने के लिए विम कैसे पैदा कर सकता हूं?


6

मैं टेक्स्ट को vim के कमांड के साथ यैंक करना चाहता हूं और इसे स्क्रीन के क्लिपबोर्ड में समाप्त करना है, जहां बाद में ^ A] के माध्यम से इसे एक अलग एप्लिकेशन में पेस्ट किया जा सकता है। vim को कॉपी करने की जरूरत है (स्क्रीन के कॉपी मोड की नहीं) क्योंकि मेरे पास एक समय में स्क्रीन पर फिट होने की तुलना में अधिक टेक्स्ट है।

के जवाब अन्य सवाल है संपर्क किया इस मुद्दे हैं, लेकिन वे ज्यादातर * vim के इंटरफेस + और का उपयोग कर एक्स क्लिपबोर्ड, जो आवेदन करने के लिए उपलब्ध नहीं है एक एक्स सत्र के साथ शुरू की उपस्थिति में दूर या नहीं शुरू करने के लिए पर भरोसा करते हैं। मैं puTTY के माध्यम से काम कर रहा हूं, लेकिन यह आकस्मिक है क्योंकि मैं केवल स्क्रीन के बीच स्थानांतरण करना चाहता हूं न कि स्थानीय रूप से।

सबसे अच्छी बात यह होगी कि जादू में एक बफर का अस्तित्व है जो स्क्रीन से जुड़ता है, लेकिन मैं वर्कअराउंड सुनूंगा:)


मैं पोटीन (विंडोज से लिनक्स) का उपयोग करता हूं, मेरे लिए मैं बाईं माउस बटन को दबाकर ट्टी में पाठ को उजागर कर सकता हूं, फिर दाएं माउस बटन (बाएं बटन को उठाए बिना) पर क्लिक कर सकता हूं। यह हाइलाइट किए गए अनुभाग की प्रतिलिपि बनाता है, और मैं अपने स्थानीय विंडोज मशीन में पारंपरिक ctl + V का उपयोग कर सकता हूं। इस प्रक्रिया को रिवर्स करने के लिए मैं विंडोज़ में ctl + c लगा सकता हूँ, फिर tty टर्मिनल में उस स्थान पर नेविगेट कर सकता हूँ जहाँ मैं पेस्ट करना चाहता हूँ और पेस्ट करने के लिए सिर्फ सही माउस बटन का उपयोग करता हूँ। कि तुम क्या देख रहे हो?
बेन प्लांट

@BenPlont ओपी प्रश्न आपके द्वारा बताए गए विवरण से बहुत अलग है। वे [स्क्रीन] (स्क्रीन) की कॉपी-पेस्ट बफर में कॉपी करने के लिए विम को ढूंढ रहे हैं। आप जो वर्णन कर रहे हैं, वह आपके सिस्टम के कॉपी-पेस्ट बफर में एक टर्मिनल से पाठ की प्रतिलिपि बना रहा है।
एर्नी जूल

जवाबों:


4

अगर कुछ अतिरिक्त कीस्ट्रोक्स आपको परेशान नहीं करते हैं, तो मैं एक समस्या नहीं देख सकता।

जीएनयू स्क्रीन की कॉपी-पेस्ट रजिस्टर ( .) को एक बॉक्स से फाइल करने के लिए पढ़ा / लिखा जा सकता है: <C-a><और <C-a>>डिफ़ॉल्ट हॉटकी हैं, /tmp/screen-exchangeएक डिफ़ॉल्ट फ़ाइल है, लेकिन मैं सिस्टम-वाइड के बजाय एक उपयोगकर्ता-विशिष्ट पसंद करूंगा ताकि मैं कुछ सेट करूं इस तरह से .screenrc:

setenv BUFFERFILE "$HOME/.buffer" 
bufferfile "$BUFFERFILE"

विम के पास बॉक्स से बाहर ऐसी कोई कमांड नहीं है, लेकिन आपको जो भी चाहिए, जैसे <leader><और <leader>>क्रमशः बनाने और उन्हें मैप करने में कोई कठिनाई नहीं है :

if exists("$BUFFERFILE")
    nnoremap <silent><leader>< :let @" = join(readfile($BUFFERFILE), "\n")<CR>
    nnoremap <silent><leader>> :call writefile( split(@", "\n"), $BUFFERFILE )<CR>
endif

यदि वे आपको परेशान करते हैं, तो यह थोड़ा और जटिल हो जाता है - जहाँ तक आपको समझा जाता है, आपको यह करना होगा:

  • सभी संभव यैंक को रीमैप करें, काटें (क्योंकि कुछ रजिस्टर में कोई ऑटोकामड घटना नहीं है) और पेस्ट करें (क्योंकि यह वास्तव में एकमात्र संभव ट्रिगर है) विम में शॉर्टकट - जटिल और थकाऊ कुछ नहीं - मुझे आशा है, आपको पता है कि यह कैसे करना है;
  • जीएनयू स्क्रीन में दो शॉर्टकट रीमैप करें: एक को चिपकाते समय यह काफी स्पष्ट है:

     bind ] eval readbuf "paste ."
    

    एक यांकिंग - <Return>या <Space>एक विशेष प्रतिलिपि मोड में मेरे लिए एक कठिनाई प्रस्तुत करता है।


सही सहज एकीकरण परेशानी के लायक नहीं है - शायद किसी दिन! मैंने अपने पाठ को डिस्क पर सहेजा और फिर उस फ़ाइल से स्क्रीन के बफर को लोड किया, और यह मेरे लिए काम करता है। ऐसा लगता है कि एक्सचेंज फ़ाइल को सहेजना शीर्ष पर एक कम कदम होगा।
GWS
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.