.tmux.conf में कॉपी (एक्स क्लिपबोर्ड) शॉर्टकट


22

Tmux में X क्लिपबोर्ड पर टेक्स्ट कॉपी करने के लिए, वर्तमान में मैं क्या कर रहा हूं:

  • के साथ चयन मोड पर जाएं prefix[
  • space( mode-keys vibtw का उपयोग करके ) चयन शुरू करें
  • पाठ का चयन करें और दबाएँ enter
  • उपयोग करने के लिए एक्स क्लिपबोर्ड पर कॉपी tmux बफर prefixctrl+c

(मैं एक मानचित्रण के रूप में है bind C-c run "tmux show-buffer | xclip -selection clipboard -i"

मैं चयन मोड के लिए मैपिंग करके इनमें से कुछ चरणों को समाप्त करने की कोशिश कर रहा हूं। मैंने कोशिश की है:

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"

जो मुझे और त्रुटि देता है:

.. usage: bind-key [-cnr] [-t key-table] key command [arguments]

(मैं त्रुटि की प्रतिलिपि नहीं बना सका)

मैं इसे कैसे ठीक करूं?

संपादित करें: मैंने महसूस किया है कि मैं माउस का उपयोग करके tmux बफर (पहले 3 चरणों) में कॉपी कर सकता हूं और एक नियमित चयन की तरह माउस का उपयोग कर सकता हूं (हालांकि हाइलाइटिंग अंतिम नहीं है, यह अभी भी पाठ का चयन करता है) और फिर x क्लिपबोर्ड पर कॉपी करने के लिए निम्नलिखित बाइंड का उपयोग करें :

bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"

(मैंने इस पाठ को कॉपी करने के लिए इस विधि का उपयोग किया और यह आसान था;)

ध्यान दें कि -n"कोई उपसर्ग" निरूपित करता है इसलिए कोई पलायन की आवश्यकता नहीं है। यदि आप लुप्त हो रहे हाइलाइट से भ्रमित नहीं होते हैं तो यह नियमित (सामान्य उपयोगकर्ता इंटरफ़ेस) के अनुरूप है।

यह सबसे अच्छा मैं अब तक के साथ आए हैं ..

EDIT2: इसctrl+c प्रक्रिया में बाधा के साथ ओवरलैप हो गया इसलिए मैंने ctrl+alt+cअब के लिए बदल दिया । (यह काफी पसंद नहीं आया)

EDIT3: tmux 1.8 या तो जोड़ा समर्थन प्रतिलिपि मोड में कीबाइंडिंग जोड़ने के लिए तो अब मेरा पहला मूल इरादा कुछ के लिए संभव है:

bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"

ये दो बाइंडिंग पाठ क्लिपबोर्ड पर कॉपी करने के लिए संभव बनाते हैं जब मैंने उपयोग किया था enterया yनकल को समाप्त करने के लिए।

अगर मैं माउस से कॉपी करता हूं और बाद में क्लिपबोर्ड को tmux बफर कंटेंट प्राप्त करने का निर्णय लेता हूं, तो मैं अभी भी इस लाइन को बनाए रखता हूं:

bind-key y run "tmux show-buffer | xclip -selection clipboard -i"

1
आप stt का उपयोग करके ctrl-c से कुछ और के लिए रुकावट बदल सकते हैं। उदाहरण के लिए, Ctrl-Z का उपयोग करने के लिए stty intr=^Z:। उस आदेश के साथ सावधान रहें, एक नियमित चरित्र को बीच में रोकना चरित्र को सेट करना संभव है (यदि आप ऐसा करते हैं, तो सेटिंग को ठीक करने तक इसे दर्ज करने के लिए ctrl-v का उपयोग करें)। और इस बात पर भ्रमित न हों कि किस कुंजी का उपयोग किया जाता है (उदाहरण के लिए ctrl-z सामान्य रूप से निलंबित कुंजी है)।
राख

@ यश ने उल्लेख किया, धन्यवाद .. लेकिन मुझे लगता है कि मैं ^cबाधा कुंजी के रूप में रखूंगा क्योंकि मैं इसे कॉपी करने की तुलना में अधिक बार उपयोग करता हूं। मैंने इस समस्या के अपने वर्तमान समाधान को प्रतिबिंबित करने के लिए उत्तर भी अपडेट किया है।
कोई भी

बढ़िया है। यह भी ध्यान दें कि xmodmap के कई रन एक मज़ाकिया स्थिति में चीज़ों को रख सकते हैं जो सही करना मुश्किल है, इसलिए मैं नए X सत्र के साथ नए सिरे से शुरू करने की सलाह देता हूं यदि कमांड का प्रभाव गलत दिखाई देता है।
राख

रनिंग bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"लाइव देता है:Unknown command: run
एलेक्सज मगुरा

1
हालाँकि, रनिंग bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"ठीक काम करता है।
एलेक्सज मगुरा

जवाबों:


13

यह उत्तर शॉर्टकट बनाने के बारे में सीधे आपके प्रश्न का उत्तर नहीं देता है। लेकिन यहाँ मैं क्या करूँ।

आप अस्थायी रूप से होल्डिंग द्वारा tmux करने के लिए अपनी चाबियाँ / माउस घटनाओं को पारित करने को निलंबित कर सकते हैं shift। तो आप कॉपी करने के लिए टर्मिनल / एक्स के शिफ्ट और यूजर रेगुलर शॉर्टकट को दबाकर रख सकते हैं। मेरे मामले में टर्मिनेटर का उपयोग करते हुए, मैं दबाता हूं shift, माउस के साथ जो भी मैं चाहता हूं, उसके साथ हाइलाइट करेंCtrl+Shift+C

और यदि आपके पास विभाजन पैन हैं, तो आप वर्तमान फलक को ज़ूम-टॉगल-की के साथ ज़ूम कर सकते Prefix + zहैं और कॉपी ऑपरेशन कर सकते हैं। (tmux v1.8 पर परीक्षण किया गया)


मैं क्षैतिज विभाजन के कारण इसका उपयोग करने में सक्षम नहीं था लेकिन ज़ूमिंग ट्रिक बहुत अच्छी लगती है, टिप के लिए धन्यवाद।
कोई नहीं

यह निश्चित रूप से सूक्ति-टर्मिनल में काम करता है; लेकिन क्या यह सभी टर्मिनल-एमुलेटर पर लागू होता है? शायद नहीं
jpaugh

Wsl- टर्मिनल में, यह काम करता है। मेरा दिन बचाओ my
Qinsi

1

यह सीधे आपके प्रश्न का उत्तर नहीं देता है, लेकिन tmux-yank पर एक नज़र है , जैसा कि tmux में vi-copy मोड में Use system क्लिपबोर्ड में वर्णित है और क्लिपबोर्ड पर बफर को कॉपी करने के लिए tmux प्राप्त करना है । स्थापित करने के बाद,

prefix + y - कमांड लाइन से क्लिपबोर्ड पर कॉपी पाठ।

कॉपी मोड बाइंडिंग:

y - सिस्टम क्लिपबोर्ड में कॉपी चयन

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