माउस के साथ tmux में पुराने कॉपी पेस्ट व्यवहार को वापस लेना


111

यह वही है जो मैं tmux में कॉपी-पेस्ट (माउस का उपयोग करके, कीबोर्ड अलग तरीके से काम करता है और यह वह नहीं है जिसके बारे में मुझे दिलचस्पी है):

  1. माउस के साथ पाठ का चयन करें, बाएं बटन दबाया
  2. मध्य बटन के साथ पाठ चिपकाएँ

मैंने अपना OS अपग्रेड कर लिया है, और इससे एक नया tmux वर्जन मिल गया है। मैंने अपनी .tmux.confकॉन्फ़िग फ़ाइल नहीं बदली है ।

इसका मुझे वर्तमान संस्करण के साथ क्या करना है tmux, 1.6(जो कि नवीनतम क्रंचबैंग लाइनक्स में पहले से पैक किया गया है):

  1. माउस, बाएं बटन दबाया और shift कुंजी के साथ पाठ का चयन करें
  2. मध्य बटन के साथ पाठ चिपकाएँ
  3. टर्मिनल अवरुद्ध हो जाता है, एक लिट्टी सूचना क्षेत्र वर्तमान फलक के शीर्ष दाईं ओर कुछ संख्या दिखाता है (यानी [0/24], संभवत: कितने वर्णों से संबंधित है), जिसका अर्थ मेरे लिए बहुत कम है और मुझे इसकी आवश्यकता नहीं है (संपादित करें: यह लगता copy-modeहै यहाँ स्वचालित रूप से दर्ज किया गया है)
  4. मुझे qफिर से एक कार्यात्मक टर्मिनल प्राप्त करने के लिए कुंजी दबाना होगा ।

यह उस चीज के लिए बहुत अधिक परेशानी है जो मैं दिन में दर्जनों बार करता हूं। पुराने तंत्र को फिर से कैसे काम करना है?


2
मेरे टर्मिनल में st, Shift+ MouseMiddleपारंपरिक व्यवहार की तरह Xselection चिपकाता है। एफडब्ल्यूआईडब्ल्यू, MouseMiddleएक संशोधक के बिना कुछ भी नहीं करता है।
नबीन-जानकारी

जवाबों:


84

डिफ़ॉल्ट कॉपी / पेस्ट कॉन्फ़िगरेशन को पुनर्स्थापित करने के लिए आपको (कम से कम अस्थायी रूप से) tmux के भीतर माउस समर्थन बंद करना होगा:

prefix : set -g mouse off

कहाँ prefixहै tmux पहुँच कुंजी ( Ctrl+ Bडिफ़ॉल्ट रूप से जब तक आप इसे फिर से नक्शा)। :कमांड मोड शुरू set -gकरता है और विश्व स्तर पर पैरामीटर सेट करता है।

जब माउस मोड बंद हो जाता है, तो आपके ऑपरेटिंग सिस्टम द्वारा प्रदान की गई मानक कॉपी / पेस्ट फ़ंक्शन अपेक्षित रूप से काम करते हैं।

कुछ और जो आप करना चाहते हैं, वह वर्तमान फलक को 'अधिकतम' कर सकता है, जिससे आप कई लाइनों को आसानी से कॉपी कर सकते हैं।


यदि आप tmux के पुराने (पूर्व 2.1) संस्करण के साथ काम कर रहे हैं, तो आपको निम्नलिखित का उपयोग करने की आवश्यकता है:

prefix : set -g mode-mouse off

अधिक विवरण और कुछ आसान कुंजी बांधने के लिए यहाँ यह सब है:

http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

ऊपर दिए गए लेख का मुख्य जोर .tmux.conf से इस अंश में दिया गया है:

# disable mouse control by default - change 'off' to 'on' to enable by default.
setw -g mode-mouse off
set-option -g mouse-resize-pane off
set-option -g mouse-select-pane off
set-option -g mouse-select-window off
# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
# set mouse off with prefix M
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'
# zoom this pane to full screen
bind + \
    new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
    swap-pane -s tmux-zoom.0 \;\
    select-window -t tmux-zoom
# restore this pane
bind - \
    last-window \;\
    swap-pane -s tmux-zoom.0 \;\
    kill-window -t tmux-zoom

13
यदि आपके पास tmux 1.8 या नया है, तो एक अंतर्निहित कमांड, Control-B z है जो वर्तमान फलक की ज़ूम की गई स्थिति को टॉगल करेगा। तो सीबी जेड इस फलक को पूर्ण स्क्रीन पर ज़ूम करने के लिए, वही कमांड फिर से बहाल करने के लिए। यह सीबी + और सीबी को परिभाषित करने की आवश्यकता को हटाता है - ऊपर विन्यास के अंत में प्रमुख अनुक्रम।
dr-jan

9
यदि आपके पास tmux 2.1 या नया है, तो माउस से संबंधित सभी कमांड अप्रचलित किए गए हैं, जिन्हें 'माउस' द्वारा प्रतिस्थापित किया गया है जो सब कुछ सेट करता है। इसलिए, डिफ़ॉल्ट मोड 'सेटव-जी माउस ऑफ' द्वारा माउस मोड को अक्षम करने के लिए। 'मोड-माउस', 'माउस-आकार-फलक', 'माउस-चयन-फलक' या 'माउस-चयन-विंडो' के किसी भी संदर्भ को निकालें।
dr-jan

50
हालाँकि, माउस-मोड पर इसके लाभ हैं: यह मुझे स्क्रॉल करने देता है। क्या सेटिंग्स का एक संयोजन है जो मुझे अपने टर्मिनल को सामान्य डार टर्मिनल की तरह उपयोग करने देता है? कॉपी / पेस्ट और स्क्रॉल शामिल हैं?
Mihai Danila

1
कुछ अन्य सेटिंग मैं क्योंकि पर साथ गड़बड़ हो सकता है, है OSx (Sierra), optionनहीं है मदद करते हैं। टर्निंग mode-mouse offमुझे सामान्य की तरह चुनने की अनुमति देता है, लेकिन फिर मैं क्लिपबोर्ड में कॉपी नहीं कर सकता ( cmd+Cया cmd+shift+Cकुछ भी नहीं कर सकता, या एक त्रुटि घंटी बजा सकता हूं, या रंग-चयनकर्ता को ला सकता
हूं

3
: Tmux v3 के साथ परीक्षण किया गया, एक चालू और बंद इसे चालू करने के लिए बाध्यbind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
एव्जेनी

248
  1. पाठ की प्रतिलिपि बनाएँ: पाठ का चयन करें और कुंजी प्रेस के left-buttonसाथ माउस shiftभी दबाएँ।
  2. shiftकुंजी + के साथ पाठ चिपकाएँmiddle-button

30
OSX उपयोगकर्ताओं के लिए यह विकल्प कुंजी है, जैसा कि इस ब्लॉग पोस्ट में वर्णित है: awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse
pangratz

3
वास्तव में, Shift + LMB के साथ पाठ का चयन करने के बाद आप गैर-X11 क्लिपबोर्ड पर कॉपी करने के लिए OS कार्यक्षमता (मेरे मामले में Ctrl-Shift-C) का उपयोग कर सकते हैं।
यूजीन पानकोव

8
ओपी स्पष्ट रूप से बताता है कि वे कीबोर्ड का उपयोग किए बिना माउस के साथ कॉपी और पेस्ट करना चाहते हैं। दबाने Shift(या OSX पर विकल्प कुंजी) पुस्तक में सबसे पुराना चाल है और अधिकांश एमुलेटर पर काम करता है, लेकिन मूल प्रश्न का उत्तर नहीं देता है।
लेक्वेरीवग

1
@pangratz विकल्प कुंजी का उपयोग करना iTerm उपयोगकर्ताओं के लिए काम कर सकता है, लेकिन मूल टर्मिनल के उपयोगकर्ताओं के लिए नहीं।
अनीसपेटेल

इस वर्कअराउंड के लिए धन्यवाद! हालांकि यह अभी भी उप-रूपीय है - माउस व्हील = इतिहास को स्क्रॉल करना, और अन्य सभी माउस फ़ंक्शन = सामान्य बहुत बेहतर होगा।
टॉर्स्टन ब्रॉन्जर

36

यदि "सेट-मोड मोड-माउस" पर आप यह ट्रिक कर सकते हैं:

मैक पर, "fn" बटन दबाएं, फिर पाठ का चयन करें और माउस राइट क्लिक या कीबोर्ड cmd + c के साथ कॉपी करें।


4
मेरे लिए, यह केवल तभी काम करता है जब मैं माउस के साथ स्क्रॉल नहीं करता। एक बार मैं माउस से स्क्रॉल, अब यह काम करता है
पॉल

इसके अलावा, आप के साथ पेस्ट कर सकते हैं fn+Middle-Click
spinup

10

यहां से संशोधित - मैं मूल के xclipबजाय उपयोग करता हूं xsel:

bind -T root MouseDown2Pane run -b "xclip -o | tmux load-buffer - && tmux paste-buffer -s ' '"

यह मेरे लिए पूरी तरह से काम कर रहा है tmux 2.5-rc2


यह टर्मिनल में अच्छा काम करता है, लेकिन यह अजीब व्यवहार करता है जब मैं विम में पेस्ट करने की कोशिश करता हूं
ट्रोपिलियो

9

उपयोग <prefix>+mचालू या बंद माउस मोड टॉगल

bind m run "if [[ `tmux show-option -w | grep mode-mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mode-mouse \$toggle &> /dev/null; for cmd in mouse-select-pane mouse-resize-pane mouse-select-window; do tmux set-option -g \$cmd \$toggle &> /dev/null; done;"

इसने मेरे लिए एकदम सही काम किया। बहुत बहुत धन्यवाद। मैं माउस मोड में स्क्रॉल करने में सक्षम होना चाहता था, लेकिन यह पाठ को कॉपी करने की मेरी क्षमता को तोड़ रहा था। यदि आप माउस मोड को अक्षम करना चाहते हैं तो यह त्वरित स्विचिंग की अनुमति देता है।
बिजन

6
मैं उपयोग करता हूंbind m set-option mouse\; display-message "Mouse is now #{?mouse,on,off}"
मैक्सिम सुसलोव

उपयोगकर्ता कॉपी और पेस्ट करने में सक्षम होना चाहता है, अभी तक अधिक नहीं ।tmux.conf अनुकूलन!
जैक वासी

6

मुझे Tmux 2 के लिए काम करने के लिए ईसाई का उदाहरण प्राप्त करने में समस्याएं थीं, मुझे लगता है कि कुछ टाइपोस हैं। मुझे काम करने के लिए नीचे मिला है और वैश्विक और खिड़की मोड दोनों को पढ़ना और सेट करना थोड़ा आसान है। किसी को मारना नया उपयोगकर्ता और tmux बढ़िया है!

bind m run "\
    tmux show-options -g | grep -q "mouse\\s*on"; \
    if [ \$? = 0 ]; \
    then  \
        toggle=off;  \
    else  \
        toggle=on;  \
    fi;  \
    tmux display-message \"mouse is now: \$toggle\";  \
    tmux set-option -w mouse \$toggle; \
    tmux set-option -g mouse \$toggle; \
    "

1
मेरे लिये कार्य करता है। जीथब (कल के रूप में) से tmux HEAD के खिलाफ परीक्षण किया गया।
लाक्वेरीवग

2
यह काम करने के लिए मुझे show-optionsलाइन को बदलना पड़ा tmux show-options -g | grep -q "mouse\\s*on"; \ । इसका कारण यह है कि रेगेक्स mouse.*onमैच @scroll-in-moused-over-pane "on"जो कि प्लगइन का हिस्सा है nhdaly / tmux-better-mouse-mode
मैंडी स्कूप

1
सरल रूप से बाध्यकारी जो मूल रूप से एक ही काम करता है -bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
एवगेनी

6

Mac + iTerm2 + tmux (संस्करण> 2.1) के उपयोगकर्ताओं के लिए :

सुनिश्चित करें कि माउस मोड tmux set -g mode-mouse onकॉन्फिगर में सेट है (बस ~ / .tmux.conf में जोड़ें )। अब, पाठ को फलक के अंदर कॉपी करने के लिए:

  1. दबाएँ option + command और पाठ आप माउस कर्सर का उपयोग कर नकल करना चाहते हैं का चयन करें। यह एक तस्वीर की तरह है।
  2. चयनित पाठ को स्वचालित रूप से कॉपी किया जाएगा (कोई ज़रूरत नहीं command + c)। बस इसे सामान्य तरीकों से पेस्ट करें।

5

यवेस ब्लूसो ने मुझे यह पता लगाने में मदद की कि यह कैसे काम करता है लेकिन मेरी मशीन पर ( विंडोज 10 चला रहा है ) ) व्यवहार थोड़ा अलग था।

tmux 2.6

सक्रिय माउस के साथ (:set -g mouse on )

प्रतिलिपि

  1. बरक़रार रखना Shift और अपने माउस से उस पाठ का चयन करें जिसे आप कॉपी करना चाहते हैं
  2. अब चयनित पाठ (बिना होल्ड किए Shift) को कॉपी करने के लिए राइट क्लिक करें

पेस्ट करें

  1. नीचे दबाए रखें Shiftऔर कॉपी किए गए टेक्स्ट को डालने के लिए राइट क्लिक करें

इतना ही आसान। का आनंद लें!


सबसे अच्छा। सरल और सुरुचिपूर्ण।
कमजोर

3

यह Kaixuan के उत्तर का एक संशोधित संस्करण है जो Tmux 2.1 के साथ संगत है।

`bind m run "if [[ `tmux show-options -w | grep mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mouse \$toggle &> /dev/null;`"

सभी mode-mouseविकल्पों को एक mouseविकल्प में जोड़ दिया गया है और show-optionइसे प्रतिस्थापित किया जाना थाshow-options


1
यह tmux.conf पर माना जाता है? ??
अर्नोल्ड रोया

1
यह कहाँ जा रहा है
११

@ArnoldRoa @statquant: हाँ, यह ~/.tmux.confफ़ाइल में जाता है । यह <prefix>+mइनलाइन स्क्रिप्ट को चलाने के लिए कुंजी को बांधना है।
inblueswithu

0

में ~/.tmux.conf:

set -g mouse off

होने bind r source-file ~/.tmux.confउपयोगी भी हो सकता है ताकि आप ctrl-d rउदाहरण के लिए config पुनः लोड करने के लिए कर सकते हैं ।


0

यहाँ पोस्ट किए गए अन्य उत्तरों के आधार पर, मैंने एक संक्षिप्त समाधान बनाया है जो (कम से कम) tmux 2.8 और tmux 3.1 के साथ काम करता है

आप tmux mouse supportदबाकर और बंद कर सकते हैं prefix- M। में .tmux.confफ़ाइल, इस लाइन में शामिल हैं:

bind-key -T prefix m run "m=$(tmux show -g mou|grep -q on;echo $?);tmux set -g mou $m;tmux display mouse:\$m"

यह mouse: 1सक्षम होने पर और mouse: 0अक्षम होने पर प्रदर्शित होगा । बार बार दबाने prefix- Mके बीच माउस मोड टॉगल होगा पर और बंद

इसे भी देखें: tmux माउस सपोर्ट

संपादित करें: यदि आपको कोई कमांड returned 1त्रुटि संदेश दिखाई देता है, तो आपको tmux 3.1 या tmux 3.2 के बजाय निम्नलिखित का उपयोग करना होगा :

bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'

(यह समाधान पहले उल्लेख किया गया था)


-1

मैं माउस के बाएं बटन के साथ पाठ का चयन करने के लिए बाइंडिंग का उपयोग करता हूं -

bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "/mnt/c/Windows/System32/clip.exe"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.