प्राथमिक चयन को चिपकाने के लिए कीबोर्ड शॉर्टकट


40

क्या प्राथमिक चयन को चिपकाने के लिए एक मानक या पारंपरिक कीबोर्ड शॉर्टकट है?

मैं अपने क्लिपबोर्ड की सामग्री को ट्रैश किए बिना पेस्ट करने के लिए कुछ टेक्स्ट का चयन करना चाहता हूं और दूसरे ऐप पर जाना चाहता हूं। मैं माउस की ओर बढ़ने के बजाय कीबोर्ड पर अपनी उंगलियां रखना चाहता हूं, पॉइंटर ढूंढें, जहां मैं चाहता हूं, वहां स्थिति और मध्य-क्लिक करें।

यदि पारंपरिक कुछ भी नहीं है, या यदि यह विशिष्ट है और कई लोगों द्वारा असमर्थित है, तो क्या विश्व स्तर पर इस कार्य को प्राप्त करने के लिए एक समाधान है? (या कम से कम अधिक अनुप्रयोगों में।)


2
संभव है कि कोई भी डिस्ट्रो: unix.stackexchange.com/questions/11889/…
Ciro Santilli 中心 ro ro ro

FWIW, आप कीबोर्ड से प्राथमिक चयन पेस्ट कर सकते हैं (यानी माउस बटन का उपयोग किए बिना), शिफ्ट-इंसर्ट का उपयोग करके, और क्लिपबोर्ड चयन को ctrl-insert / ctrl-shift-सम्मिलन का उपयोग करके कॉपी करें
जोनाथन हार्टले

मेरे लिए @JonathanHartley ने क्लिपबोर्ड से पेस्ट-इंसर्ट पेस्ट किए, प्राथमिक चयन नहीं
२५:०५

जवाबों:


32

वर्चुअल कीपेस भेजना मेरे लिए काम नहीं करता ( टिप्पणियाँ देखें ), लेकिन उस जवाब ने मुझे इसी तरह के समाधान के लिए प्रेरित किया। xvkbdअपने भौतिक कीबोर्ड की वर्तमान स्थिति को अनदेखा करने के साथ "पाठ" ईवेंट भेजना :

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'

xvkbd -textकुछ बैकस्लैश दृश्यों का उपयोग करता है, इसलिए भागने के साथ नृत्य के बजाय -fileकाम करता है। xvkbdसंशोधक के बारे में कुछ चेतावनी पाठ भी आउटपुट करता है, लेकिन यह इस उपयोग के लिए अप्रासंगिक प्रतीत होता है (लेकिन मैं इसे नहीं देखना चाहता था ~/.xsession-errors)।

मैं इसे सिस्टम> वरीयताएँ> कीबोर्ड शॉर्टकट का उपयोग करके शॉर्टकट के लिए बाध्य करता हूं ।

ध्यान दें कि आपको xsel और xvkbd संकुल स्थापित करने की आवश्यकता है:

sudo apt-get install xsel xvkbd

3
पवित्र केले! यह काम करता हैं! वह तो कमाल है। उबंटू को इसे डिफ़ॉल्ट रूप से सेट करना चाहिए।
एरिक जॉनसन

8
मेरे लिए, sh -c 'xsel | xvkbd -file - 2>/dev/null'काम करने के लिए -xsendevent को काम करने के लिए बाहर निकलना पड़ा।
sup

वैसे एक बार और, मुझे इस कमांड को एक ही कुंजी शॉर्टकट (सौभाग्य से मेरे पास थिंक वैंटेज बटन है, जो मेरे थिंकपैड पर कुछ नहीं कर रहा है - ctrl + alt + v ने अजीब तरह से व्यवहार किया और जो कुछ भी था उसका केवल एक ही भाग चिपकाया xsel)।
सुपर

2
यह दो समस्याओं को छोड़कर बहुत अच्छी तरह से काम करता है। (1) मैं एक ड्रॉप-डाउन टर्मिनल (गुके) का उपयोग करता हूं जिसे मैंने खो फोकस पर छिपाने के लिए सेट किया है। इस स्क्रिप्ट को चलाने से टर्मिनल से अस्थायी रूप से फोकस हट जाता है, जिससे यह छिप जाता है। (2) यह UTF-8 अक्षरों के साथ डबल-बाइट वर्णों के साथ अच्छा व्यवहार नहीं करता है। उदाहरण के लिए, यदि मैं स्क्रिप्ट प्रिंट "Ã © Ã selectÃ" का उपयोग करके "éòü" का चयन करता हूं।
स्परहॉक

2
ऐसा लग रहा है कि दूसरा बग अंदर है xvkbdxselप्राथमिक चयन में "éòü" के साथ ठीक काम करता है, लेकिन xvkbdउपरोक्त स्क्रिप्ट के रूप में विफल रहता है। (और इसके साथ विफल भी होता है xvkbd -text "éòü", हालांकि यहां यह कुछ भी नहीं छापता है।)
स्परहॉक

7

आप इसे प्रोग्राम्स xdotool ( इंस्टॉल करने के लिए क्लिक करें ) और xsel ( इंस्टॉल करने के लिए क्लिक करें ) के संयुक्त उपयोग के साथ प्राप्त कर सकते हैं ।

xdotoolएक खिड़की में टाइपिंग अनुकरण कर सकते हैं; xselप्राथमिक चयन की सामग्री को आउटपुट करता है (डिफ़ॉल्ट रूप से); निम्नलिखित शेल एक लाइनर चाल करेगा:

 xdotool type `xsel`

सिस्टम-> प्रेफरेंस-> कीबोर्ड शॉर्टकट मेनू आइटम का उपयोग करके इसे किसी भी कुंजी से बांधने के लिए इसे शेल इन्वोकेशन में लपेटना आवश्यक है:

 sh -c 'xdotool type --clearmodifiers -- "`xsel`"'

xdotoolकुछ कार्यक्रमों के साथ काम करने में टाइपिंग नहीं होगी; नोट को xdotool प्रलेखन में देखें


यह तब तक काम नहीं करेगा जब तक कि सक्रिय टेक्स्ट बॉक्स और कर्सर की स्थिति उस सटीक स्थिति पर न हो, और यह निश्चित रूप से नहीं है। वास्तव में, यदि यह विंडो मैनेजर बॉर्डर को गिनता है, तो यह मेरा "विंडो टाइटल पर मिडिल-क्लिक" एक्शन करेगा, जो पूरी तरह से अलग है।

@Roger धन्यवाद, पाठ को सही किया। मैं उत्सुक हूं कि क्या ऐसा करने का एक बेहतर तरीका है: मैं खुद काफी समय से "पेस्ट" -की तलाश कर रहा हूं ...
Riccardo Murri

खैर, मैं प्रयास की सराहना करता हूं, लेकिन यह अभी भी काम नहीं करेगा। अगर मैं माउस की स्थिति के बारे में चिंता करना चाहता था, तो मैं पहले स्थान पर माउस का उपयोग करूँगा। :)

@Roger: यह सही दूसरी बार मिला: xdotool + xsel करता है। (खैर, कम से कम मेरे लिए काम करता है।)
रिकार्डो मुरी

2
आवश्यकताएं --clearmodifiers विकल्प, अन्यथा कीबोर्ड शॉर्टकट जारी करने और xdotool निष्पादन के बीच एक दौड़ की स्थिति है। 10.04 के रिपोज में xdotool इस विकल्प के लिए अपडेट नहीं किया गया है, मुझे इसे स्वयं डाउनलोड और निर्माण करना था। हालांकि, --clearmodifiers अजीब रूप से संशोधक को प्रभावित करता है, और मुझे नहीं लगता कि अंत में, मेरे कीबोर्ड शॉर्टकट के लिए xdotool काम कैसे करें (हालांकि यह वस्तुतः टाइपिंग पाठ के लिए बहुत अच्छा काम करता है)।

5

मैं इसी प्रश्न के लिए एक उत्तर की तलाश में था, और मुझे यह उत्तर मिला जो कहता है कि Shift+ Insertप्राथमिक चयन को चिपकाने के लिए काम कर रहा है। मैं मेरे लिए काम करता हूं। सरल।


उबंटू बाई डिफॉल्ट शिफ्ट + इंसर्ट क्लिपबोर्ड को Ctrl + v की तरह नियमित रूप से पेस्ट करें , न कि प्राथमिक चयन। आप कौन से डिस्ट्रो का उपयोग कर रहे हैं?
पाब्लो ए

2

कॉलिंग xdotool click --clearmodifiers 2सिम पर क्लिक करते हुए मध्य माउस बटन। यह xsel (कम से कम मेरे लिए) का उपयोग करने की तुलना में बहुत बेहतर काम करता है। टाइप करने से पहले आपको अपना माउस रखना होगा ...


2

एक और xdotool सुझाव, डेबियन जेसी 8.7 (जनवरी 2017) में काम कर रहा है:

xdotool click --delay 0 --clearmodifiers 2
  • xdotool मल्टी-बाइट स्ट्रिंग्स (pe UTF-8) को xvkbd के विपरीत हैंडल करता है।
  • xdotool clickएक वास्तविक क्लिक का अनुकरण करता है, इसलिए आपको माउस की स्थिति में पेस्ट करने के लिए खुद पर क्लिक करने की आवश्यकता नहीं है, जैसा कि आपने इस्तेमाल किया है xdotool type, या xvkbd होगा।

एकमात्र समस्या यह है कि आप --clearmodifiersकिसी भी संशोधक (Ctrl / Alt / Shift / Meta) को "दबाएं" पर क्लिक करने के बाद उपयोग करेंगे। यहां तक ​​कि --delay 0(12ms के बजाय), कमांड निष्पादित करने के लिए थोड़ा सा लेता है। यदि आप समाप्त होने से पहले कुंजी जारी करते हैं, तो आपके संशोधक फिर से "दबाए" जाएंगे, और जब तक आप वास्तविक प्रेस नहीं करते तब तक वहां अटकेंगे और एक बार फिर से जारी करेंगे।

तो इसके साथ आपको अपने मॉडिफायर को जारी करने के लिए थोड़ा "धीमा" (50ms?) होना चाहिए, यदि आप कोई उपयोग कर रहे हैं।

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

यदि आप बहुत तेज़ हैं, तो आप ilkerk के सुझाव का उपयोग कर सकते हैं:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "`xsel`"'

फिर आपको उन्हें 300ms से कम में जारी करना होगा , और पाठ के प्रकट होने के लिए आधा सेकंड इंतजार करना होगा।

इसके अलावा, उपयोग xdotool typeकरने का मतलब है कि आप पाठ को सम्मिलित करें जैसे कि आप जहाँ टाइप करते हैं, पाठ कर्सर स्थिति पर, और माउस पॉइंटर नहीं। clickयदि आप सामान्य मध्य-क्लिक व्यवहार पसंद करते हैं तो आप इसे बदल सकते हैं।

(इस पोस्ट को इतना नया बनाया है कि फिर से टिप्पणियों में फैले पहेली के टुकड़े को न डालें)


अब आर्क लिनक्स में मेरे लिए काम करता है
MountainX

1

मेरे पास उन समाधानों की समस्याएं थीं जो चयन को चिपकाने का अनुकरण करती हैं PRIMARY, इसलिए इसके बजाय मैंने एक शॉर्टकट जोड़ा जो चयन को कॉपीPRIMARY करता हैCLIPBOARD । मेरी शॉर्टकट का उपयोग करने के बाद मैं पेस्ट CLIPBOARDके साथ हमेशा की तरह, Ctrl+V, Ctrl+Shift+V, या Shift+Insert, आवेदन के आधार पर।

PRIMARYचयन को कॉपी करने का कमांड CLIPBOARDहै

sh -c 'xsel --output --primary | xsel --input --cliboard'

जिसके तहत मैं Ctrl+InsertGnome शॉर्टकट सेटिंग्स में (अनियंत्रित विकल्प) को बांधता हूंSystem Settings -> Devices -> Keyboard

अन्य समाधानों के साथ समस्याओं का सारांश: मैंने xsel | xvkbd ...और xsel | xdotool ...समाधानों की कोशिश की , लेकिन पाया कि वे बहुत अच्छी तरह से काम नहीं करते हैं क्योंकि वे चरित्र द्वारा चयन चरित्र टाइप करने का अनुकरण करते हैं PRIMARY, जो इसे मध्य क्लिक के साथ चिपकाने के समान नहीं है । समस्याओं में शामिल हैं: एक लंबा चयन होता है जबकि एक बड़े चयन को एक बार में एक वर्ण सम्मिलित किया जाता है; यदि आप "पेस्ट" को पूर्ववत करना चाहते हैं, तो आपको इसे चरित्र द्वारा पूर्ववत करना होगा, जो धीमा है; यदि आप "मृत कुंजी" का उपयोग कर रहे हैं, तो सब गड़बड़ हो जाता है, जैसे "चिपकाना" "eपैदा करता है ë; xvkdbयूनिकोड वर्ण सही ढंग से संभाल नहीं है।

चेतावनी: यह समाधान मौजूदा CLIPBOARDसामग्रियों को अधिलेखित करता है , लेकिन ओपी ने उन समाधानों के लिए कहा जो मौजूदा CLIPBOARDसामग्रियों को संरक्षित करते हैं।


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

@ Xen2050 हाँ, यह CLIPBOARD को चकमा देता है। मैं उत्तर के लिए एक नोट जोड़ूंगा।
ntc2 19

0

मेरे पास एक ही मुद्दा था और इंटरनेट खोज से मुझे बहुत मदद नहीं मिली। ओपी के बताए अनुसार क्लिक 2 की समस्या का समाधान करना कष्टप्रद है।

उपरोक्त प्रस्तावित xdotoolऔर xsel के साथ समस्या यह है कि xdotool"टाइपिंग" शुरू होने पर आप अभी भी एक और कुंजी दबा रहे हैं। यह हमेशा किसी भी आउटपुट के साथ नहीं होता है। उदाहरण के लिए यदि आप इसे "इन्सर्ट" कुंजी से बांधते हैं तो कुंजी xdotoolभेज रहा है जबकि आपकी उंगली "इन्सर्ट" कुंजी दबा रही है जो कुछ भी कारण नहीं है।

नीचे एक प्रमुख प्रेस से बांधने के लिए वर्कअराउंड है:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "`xsel`"'

यह सही नहीं है, लेकिन काम कर रहा है। अब आपके पास कुंजी प्रेस (और कुंजी अप) के अपने चयन को पूरा करने के लिए 0.3 सेकंड हैं।

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