कुछ तरीके हैं। जिन तरीकों का उल्लेख किया गया है उनमें से कुछ में (मुझे लगता है) tmux, screen, vim, emacs, और shell शामिल हैं। मुझे एमएसीएस या स्क्रीन नहीं पता है, इसलिए मैं अन्य तीन पर जाऊंगा।
Tmux
जबकि X चयन नहीं है, tmux के माध्यम से एक कॉपी मोड सुलभ है prefix-[
( डिफ़ॉल्ट रूप prefix
से Ctrl+ Bहै)। इस मोड के लिए उपयोग किया जाने वाला बफर अलग है और tmux के लिए अनन्य है, जो काफी संभावनाओं को खोलता है और इसे सही परिस्थितियों में एक्स चयनों की तुलना में अधिक बहुमुखी बनाता है।
इस मोड से बाहर निकलने के लिए, हिट करें q; नेविगेट करने के लिए, अपने vim
या emacs
बाइंडिंग (डिफ़ॉल्ट = विम) का उपयोग करें , इसलिए hjkl
आंदोलन के लिए, v/V/C-v
चरित्र / रेखा / ब्लॉक चयन के लिए, आदि जब आपका चयन होता है, तो Enterकॉपी करने और मोड से बाहर निकलने के लिए हिट करें।
इस बफ़र से चिपकाने के लिए, उपयोग करें prefix-]
।
खोल
X11
डिफ़ॉल्ट रूप से दो कार्यक्रमों के साथ आने की कोई भी स्थापना प्रतीत होती है: xclip
और xsel
(थोड़े की तरह यह भी दोनों के साथ कैसे आता है ) startx
और xinit
। अधिकांश अन्य उत्तर उल्लेख करते हैं xclip
, और मैं वास्तव में xsel
इसकी संक्षिप्तता के लिए पसंद करता हूं, इसलिए मैं कवर करने जा रहा हूं xsel
।
से xsel (1x) :
इनपुट विकल्प
-ए, --प्पेंड
चयन के लिए मानक इनपुट जोड़ें। तात्पर्य मैं ।
-फ, --फॉल
मानक इनपुट के बढ़ने के साथ चयन करने की अपील करें। तात्पर्य मैं ।
-आई, -इनपुट
चयन में मानक इनपुट पढ़ें।
आउटपुट विकल्प
-ओ, --आउटपुट
मानक आउटपुट के लिए चयन लिखें।
कार्रवाई के विकल्प
-सी, - क्लियर
चयन साफ़ करें। सभी इनपुट विकल्पों को ओवरराइड करता है।
-ड, --डेलीट
अनुरोध करें कि वर्तमान चयन हटा दिया जाए। यह न केवल चयन को साफ करता है, बल्कि उस कार्यक्रम के लिए भी अनुरोध करता है जिसमें चयन यह रहता है कि चयनित सामग्री हटा दी जाए। सभी इनपुट विकल्पों को ओवरराइड करता है।
चयन के विकल्प
-पी, -प्रतिष्ठा
प्राथमिक चयन (डिफ़ॉल्ट) पर काम करते हैं।
-s, - सेकेंडरी
सेकंड के चयन पर काम करते हैं।
-बी, -क्लिपबोर्ड
CLIPBOARD चयन पर काम करते हैं।
और इसके बारे में आपको पता होना चाहिए। p
(या कुछ भी नहीं) के लिए PRIMARY
, s
के लिए SECONDARY
, b
के लिए CLIPBOARD
, o
उत्पादन के लिए।
उदाहरण: कहते हैं कि मैं foo
एक TTY से आउटपुट कॉपी करना चाहता हूं और इसे बग रिपोर्ट के लिए एक वेबपेज पर पेस्ट करना चाहता हूं । ऐसा करने के लिए, टीटीवाई / एक्स सत्र से / के लिए कॉपी करना आदर्श होगा। तो सवाल यह हो जाता है कि मैं TTY से क्लिपबोर्ड का उपयोग कैसे करूं?
इस उदाहरण के लिए, हम मान लेंगे कि X सत्र प्रदर्शन पर है :1
।
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
फिर मैं Ctrl-V
इसे हमेशा की तरह फॉर्म में डाल सकता हूं ।
अब कहते हैं कि समर्थन साइट पर कोई मुझे समस्या को ठीक करने के लिए चलाने की आज्ञा देता है। यह जटिल और लंबा है।
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
पिज्जा ऑर्डरिंग कमांड लाइन के उत्पादक उपयोग की तरह लगता है।
...आगे बढ़ते रहना।
शक्ति
यदि इसके साथ संकलित किया गया है +clipboard
(यह महत्वपूर्ण है! अपनी जांच करें vim --version
), विम को एक्स PRIMARY
और CLIPBOARD
चयन तक पहुंच होनी चाहिए । दो चयन क्रमशः *
और +
रजिस्टरों से सुलभ हैं, और आपके अवकाश से किसी अन्य रजिस्टर के समान लिखा और पढ़ा जा सकता है। उदाहरण के लिए:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
यदि विम की आपकी प्रतिलिपि सीधे X चयनों तक पहुंच का समर्थन नहीं करती है, हालांकि, यह दुनिया का अंत नहीं है। आप xsel
तकनीक का उपयोग कर सकते हैं जैसा कि पिछले भाग में बताया गया है।
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
कुछ प्रमुख कॉम्बो को बांधें और आपको अच्छा होना चाहिए।
:%y+
विम का उपयोग कर रहा हूं , जो कि "+" रजिस्टर (एक्सPRIMARY
क्लिपबोर्ड) में सभी पंक्तियों के लिए "यंक (कॉपी)" के लिए विम-स्पीक है ।%
यदि आप विशिष्ट होना चाहते हैं तो आप एक सीमा से बदल सकते हैं। लेकिन तीन कैविएट हैं: 1. अब, आपको कॉपी करने से पहले किसी भी टेक्स्ट को फाइल में सेव करना होगा। यहxclip
उत्तर में उल्लिखित कमांड के विपरीत है। 2. यदि आप पहले से ही नहीं जानते कि कैसे विम करना है, तो यह थकाऊ हो सकता है। 3. आप केवल ऐसा कर सकते हैं यदि विम को संकलित करते समय एक निश्चित सुविधा सक्षम हो। यदि आप GVim स्थापित करते हैं, तो इसे GUI और टर्मिनल उदाहरण दोनों में डिफ़ॉल्ट रूप से सक्षम किया जाना चाहिए।