Tmux 2.4+ vi प्रतिलिपि मोड बाइंडिंग और xclip के साथ :
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
पुराने tmux संस्करणों के लिए, emacs कॉपी मोड बाइंडिंग (डिफ़ॉल्ट), या गैर- X प्लेटफ़ॉर्म (अर्थात, कोई xclip) नहीं है, नीचे विवरण देखें।
स्पष्टीकरण: पहले हमें माउस विकल्प को सक्षम करने की आवश्यकता है, इसलिए tmux माउस को पकड़ लेगा और हमें माउस घटनाओं को बाँध देगा:
set-option -g mouse on
सूक्ति-टर्मिनल xterm से बच दृश्यों का उपयोग करके क्लिपबोर्ड सेट करने का समर्थन नहीं करता है, इसलिए हमें यह सुनिश्चित करना चाहिए कि set-clipboardविकल्प बंद है:
set-option -s set-clipboard off
यह विकल्प iTerm2 ( set-clipboardtmux मैनुअल में देखें ) पर डिफ़ॉल्ट रूप से समर्थित और सक्षम हो सकता है , जो वहां के व्यवहार की व्याख्या करेगा।
हम तब कॉपी मोड MouseDragEnd1Pane"की" को बांध सकते हैं , यानी, जब माउस का पहला बटन क्लिक करने और एक फलक में खींचने के बाद जारी किया जाता है, एक tmux कमांड के लिए जो वर्तमान कॉपी मोड का चयन (डिफ़ॉल्ट बाइंडिंग द्वारा बनाया गया MouseDrag1Pane) लेता है और इसे पाइप करता है एक शेल कमांड को। यह tmux कमांड copy-pipetmux 2.4 से पहले था , और तब से बदल गया है send-keys -X copy-pipe[-and-cancel]। शेल कमांड के लिए, हमें बस कुछ चाहिए, जो सिस्टम क्लिपबोर्ड की सामग्री को जो कुछ भी इसके लिए पाइप करेगा; निम्न आदेशों में ऐसा करने के लिए xclip का उपयोग किया जाता है। "xclip -selection clipboard -i"गैर-एक्स प्लेटफार्मों पर नीचे के लिए कुछ समान प्रतिस्थापन हैं "wl-copy"(वेलैंड), "pbcopy"(मैकओएस), "clip.exe"(विंडोज, डब्ल्यूएसएल), और "cat /dev/clipboard"(सिग्विन, मिनगव)।
Tmux 2.4+:
# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
Tmux 2.2 से 2.4:
# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
Tmux 2.2 से पहले:
माउस ड्रैग सपोर्ट के बाद कॉपी को मूल रूप से Tmux 1.3 में नया mode-mouseविकल्प सेट करने के माध्यम से जोड़ा गया था on। Tmux 2.1 ने माउस समर्थन को परिचित माउस कुंजी बाइंडिंग में बदल दिया, लेकिन इसमें DragEndबाइंडिंग नहीं थे, जिन्हें 2.2 में पेश किया गया था। इस प्रकार, 2.2 से पहले मुझे विश्वास है कि माउस ड्रैग पर सिस्टम क्लिपबोर्ड सेट करने का एकमात्र तरीका xterm एस्केप सीक्वेंस ( set-clipboardविकल्प) के अंतर्निहित उपयोग के माध्यम से था । इसका मतलब है कि set-clipboardगनोम टर्मिनल जैसे समर्थन नहीं करने वाले टर्मिनलों के लिए ड्रैग-एंड-कॉपी व्यवहार प्राप्त करने के लिए कम से कम tmux 2.2 को अपडेट करना आवश्यक है ।