माउस चयन के बाद tmux आउटपुट से सिस्टम क्लिपबोर्ड पर प्रतिलिपि कैसे करें?


82

अब सिस्टम क्लिपबोर्ड पर प्रतिलिपि के लिए मुझे Shiftकुंजी के साथ tmux विंडो में माउस पाठ के माध्यम से चयन करना होगा । और फिर मुझे यह कमांड चलाना होगा:

tmux save-buffer - | reattach-to-user-namespace pbcopy

क्या सिस्टम क्लिपबोर्ड को सहेजने का कोई मौका आसान है? प्रमुख बाइंड या बेहतर है कि स्वचालित रूप से शिफ्ट रिलीज के बाद।

मेरा tmux config: https://gist.github.com/3641580


यहाँ unix.stackexchange पर एक समान प्रश्नोत्तर है ।
crw

2
MacOS पर इनमें से कोई काम, विशेष रूप से सिएरा? या बल्कि, उनमें से कोई भी नहीं करता है, क्या कोई जानता है कि क्या होगा? इस सवाल के साथ टैग किया गया है osx, लेकिन उत्तर बाईं और मध्य-क्लिक के बारे में बात कर रहे हैं ...
dwanderson

जवाबों:


192

यदि आप iTerm2 का उपयोग कर रहे हैं, तो आप Tmux सत्र में पाठ को कॉपी कर सकते हैं, Optionचयन करने के लिए माउस को खींचते समय कुंजी को दबाए रख सकते हैं ।

फिर पाठ को हमेशा की तरह Cmd+ के साथ कहीं भी पेस्ट करना संभव होगा V। इसे यहां देखें: http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/


26
Tmux पैन के साथ मदद नहीं करता
Jak S

41
यदि आपके पास पैन है, तो <alt> + <cmd> + माउस चयन का उपयोग करके आयताकार चयन करना संभव है।
जोमुलर

6
आयताकार चयन पैन के लिए समान कार्यक्षमता प्रदान नहीं करता है क्योंकि चयन किसी भी कॉलम में शुरू और खत्म हो सकता है। यह समाधान tmux से संबंधित नहीं है, बल्कि टर्मिनल के लिए ही है। पान tmux की एक मुख्य विशेषता है।
बेटामोस

6
@ जाक उपसर्ग + Z वर्तमान फलक को दर्शाता है। तब आपको वह समस्या नहीं होगी। जब तक आप एक विम विभाजन के अंदर न हों :)
dgmora

10
टर्मिनल में, आप "fn" कुंजी दबाकर पाठ का चयन कर सकते हैं। आप चयनित पाठ को "Cmd + C" द्वारा कॉपी कर सकते हैं।
fbessho

58

यदि आप iTerm2 3.x का उपयोग करते हैं, तो आप सक्षम करके कॉपी / पेस्ट कार्य कर सकते हैं Applications in terminal may access clipboard:

यहां छवि विवरण दर्ज करें

बस अपने माउस के साथ पाठ को उजागर करने के लिए इसे ओएस एक्स क्लिपबोर्ड में कॉपी करें! प्रेस Optionको एसेंचर के जवाब में दिए गए सुझाव की जरूरत नहीं है ।

आप OS X क्लिपबोर्ड से सामान्य Cmd+ के साथ tmux में भी पेस्ट कर सकते हैं V


1
सभी- reattach-to-user-namespaceआधारित दृष्टिकोण मेरे लिए काम नहीं करते हैं, क्योंकि मैं अक्सर लिनक्स मशीनों में ssh करता हूं। यह समाधान, हालांकि, महान काम करता है! धन्यवाद!
jdg

बहुत बढ़िया जवाब। मैं अभी भी <kbd> विकल्प </ kbd> का उपयोग करता हूं जब मैं विम में होता हूं और नहीं चाहता कि माउस एक विम चयन को सक्रिय करे।
चाड स्कीटर्स

इसने खूबसूरती से काम किया। किसी भी कॉन्फ़िगरेशन को बदलने की आवश्यकता नहीं है। धन्यवाद।
मुअम्मर

यह सिर्फ tmux के साथ बहुत अच्छा काम करता है, लेकिन अब उस tmux में चलने वाले vim yanks को iterm और system क्लिपबोर्ड पर कैसे भेजें ??
श्लोक

@ स्कोलो यह शायद एक अलग विम + tmux StackOverflow प्रश्न होना चाहिए, लेकिन मैं विम का उपयोग करने के लिए भी होता हूं और मैंने set clipboard=unnamedउस उद्देश्य के लिए अपने vimrc में जोड़ा
जेरोम डलबर्ट

28

इसी तरह के एक सवाल का जवाब यहां दिया गया है: /unix/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

समाधान वहाँ पाया:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux show-buffer | xclip -i"

इसे भी देखें : http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

यदि आपने निम्नलिखित विकल्प निर्धारित किए हैं:

माउस का चयन फलक

माउस का चयन खिड़की

आप देखेंगे कि आप पाठ का चयन करने में सक्षम नहीं हैं।

समाधान शिफ्ट कुंजी का उपयोग करना है।

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.

4
इटर्म के साथ, शिफ्ट कुंजी के बजाय विकल्प कुंजी का उपयोग करें। [जैसा कि यहां बताया गया है: awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse ]
gatoatigrado

2
MacOS के लिए, xclip -o=> pbpaste, xclip -i=> pbcopy
गिंगी

23

ओएस एक्स के लिए, यदि आप एप्लिकेशन "टर्मिनल" का उपयोग करते हैं। आप माउस स्क्रॉल को बंद कर सकते हैं और सामान्य कॉपी / पेस्ट फ़ंक्शन (cmd + c / cmd + v) का उपयोग कर सकते हैं)

set-option -g mouse-select-pane off
set-option -g mouse-resize-pane off
set-option -g mouse-select-window off
set-window-option -g mode-mouse off

या आप माउस स्क्रॉल का उपयोग कर सकते हैं और "fn कुंजी" का उपयोग करके पाठ का चयन कर सकते हैं:

set-window-option -g mode-mouse on

16
fnकुंजी टिप एक जीवन रक्षक है! बहुत सारे लोग उपयोग करने का सुझाव देते हैं, ALTलेकिन यह नवीनतम मैक ओएस एक्स
AK_

1
अभी तक बेहतर - कॉलम मोड का उपयोग करके fn और विकल्प को मिलाएं !
फ्लेच

Fn कुंजी बदलने का कोई तरीका? एक बाहरी कीबोर्ड का उपयोग करना जिसमें fn कुंजी नहीं है!
सेंटएउ

@CentAu इसके बजाय "विंडो" कुंजी का उपयोग करने का प्रयास करें
Piotrek Zatorski

19

OSX पर tmux संस्करण 2.2 का उपयोग करके या बाद में अपनी tmux.conf फ़ाइल में निम्न जोड़ें:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Tmux संस्करण 2.4 के लिए, चूंकि उन्होंने कृपया कमांड सिंटैक्स को बदलने का फैसला किया है, इसलिए आपको इसका उपयोग करना चाहिए:

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"

ध्यान दें कि आपको reattach-to-user-namespace pbcopyसादे के बजाय उपयोग करने की आवश्यकता हो सकती है pbcopy


इसके अलावा Ubuntu 16.04 पर यह tmux 2.1 पर कोई समस्या नहीं है। मैं बस टर्मिनल की डिफ़ॉल्ट कॉपी पेस्ट विधियों का उपयोग कर सकता हूं।
सिरो सेंटिल्ली 郝海东 冠状 i i 法轮功

पता नहीं क्यों यह सूची में इतना कम है, यह सही उत्तर है!
शकीनाक

11

इसे मेरे ~ / .tmux.conf फ़ाइल में रखना मेरे लिए काम करता है:

bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

मुझे मिले सभी अन्य संभावित समाधान OSX क्लिपबोर्ड में किसी प्रकार की खाली सामग्री की नकल कर रहे थे।

एकमात्र समस्या यह है कि यह पेस्ट की गई सामग्री के अंत में एक गाड़ी वापसी के लिए लगता है।


3
यह काम करता है, लेकिन फिर भी आपको चयन करने के बाद PREFIX + y को प्रेस करना होगा। क्या OS X में tmux सत्र से पाठ को कॉपी करने का एक तरीका है जैसे कि लिनक्स टर्मिनल में इसे चुनकर?
राफेल बुगाजेवस्की

6

बाईं माउस बटन दबाएं और इसे दबाए रखें, फलक में पाठ का चयन करें और अभी भी बटन दबाए रखें। फिर "y" दबाएं, जो क्लिपबोर्ड के भीतर चयन को बचाता है और चयन / कॉपी मोड से बच जाता है।

यहाँ iTerm 3.1.beta.5, tmux 2.5 और निम्नलिखित कॉन्फिग के साथ काम करता है:

### copy & paste -------------------------------------------------------
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

+1 अंत में, एक अप-टू-डेट समाधान जो काम करता है। धन्यवाद। - बिना पूर्व प्रवेश के सिर्फ ओवरराइड करना ठीक लगता है unbind
थॉमस

Tmux संस्करण 3 और ऊपर का उपयोग करता है, copy-mode-viजबकि पुराने संस्करण का उपयोग करता है copy-mode
मुथंतमहेश

5

प्रेस शिफ्ट की और फिर माउस क्लिक !! इस लिंक को देखें। http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/


यह प्रश्न बहुत पुराना है, और iTerm के साथ उपयोग के लिए आपका समाधान गलत है। वर्तमान स्वीकृत उत्तर सही है।
ओगाजा

यह गनोम टर्मिनल के लिए काम करता है, लेकिन यह सवाल OSX के बारे में पूछ रहा है
JKirchartz

3

मैं macOS हाई सिएरा के अनुप्रयोग में खिड़की से + के साथ पाठ का चयन करने के बाद CMD+ के साथ इस समस्या को हल करने में सक्षम था ।CFNmouse drag with left button downtmuxTerminal


1

मैंने आज netcat का उपयोग करके एक संस्करण बनाया है जो कि बहुत आसान है।

https://github.com/base698/tmux-copy-paste-mac-osx

यहाँ tmux.conf है:

bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-pipe 'nc localhost 5682'
bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer

1.8 में भी माउस के साथ काम करता है


1

यहाँ समाधान मैं tmuxसंस्करण 2.8, macOS Mojave 10.14.1, और Terminal.app के लिए उपयोग कर रहा हूँ ।

माउस बटन जारी करने के बाद, यह सिस्टम क्लिपबोर्ड (साथ ही tmuxबफर) पर कॉपी करते समय चयन को हटा देता है :

bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

0

एक मजबूत समाधान जो mosh + tmux + vim + नेस्टेड सत्र के किसी भी संयोजन के साथ काम करता है

इससे निपटने के कई दिन बिताने के बाद, अब तक मैंने जो सबसे मजबूत समाधान खोजा है, वह सूरज एन। कुरपति का पोस्टेड समाधान है । समाधान स्थानीय रूप से (और बिना) tmux v3.2 और / या vim के साथ काम करता है, साथ ही साथ (और बिना) tmux और / या vim के साथ दूरस्थ रूप से कॉपी-मोड कुंजियों और सरल माउस चयन दोनों का उपयोग करता है।

अगर माइक गुलिक (वर्तमान में खुला) पुल अनुरोध के साथ संयुक्त है , तो ये सभी संयोजन मॉश के साथ भी काम करते हैं ।

जब तक माइक के समाधान को मॉश में विलय नहीं किया जाता है, तब तक आप उसके परिवर्तनों को खींच सकते हैं और स्थानीय रूप से उपयोग कर निर्माण कर सकते हैं:

उबंटू:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \
&& sudo apt-add-repository https://cli.github.com/packages \
&& sudo apt update \
&& sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

मैक ओ एस:

मुझे लगता है कि आपको पहले Apple के Xcode / Developer कमांड लाइन टूल्स को स्थापित करने की आवश्यकता है (जो, IIRC, अब बस रनिंग gccऔर एक्साइटिंग द्वारा किया जा सकता है ), फिर रनिंग:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \
&& brew install gh autoconf automake
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

इन अद्यतनों के साथ, क्लिपबोर्ड पवित्र कब्र को आखिरकार हासिल किया गया है!

हालांकि, यह बहुत नई जानकारी है, इस प्रकार मेरा यह पद बल्कि अस्थिर है। इसलिए:

कृपया मेरी पोस्ट को संशोधित करें अगर:

  1. मुझे निर्भरताएँ याद आ रही हैं, आदि, या
  2. gh pr checkout 1104माइक के परिवर्तनों का प्रदर्शन करने की अब आवश्यकता नहीं है क्योंकि इसे mosh, या में विलय कर दिया गया है
  3. स्रोत से भवन की अब आवश्यकता नहीं है क्योंकि मर्ज किए गए परिवर्तनों को ब्रू / एप्ट / आदि पैकेज प्रबंधकों को धकेल दिया गया है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.