Tmux सत्र में pbcopy का उपयोग करने में असमर्थ


63

स्नो-लेपर्ड पर बंदरगाहों से स्थापित रनिंग tmux 1.4 मैं OSX pbcopyकमांड में निर्मित उपयोग करने में असमर्थ हूं ।

के बाहर tmux:

> echo "abc" | pbcopy
> echo $(pbpaste) # or using ^v
abc

लेकिन अंदर tmux:

> echo "123" | pbcopy
> echo $(pbpaste)
abc

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

किसी को कोई सुराग है?


1
ध्यान दें कि यह xclipलिनक्स पर काम करता है । वैसे, echo pbpaste"pbpaste" में परिणाम होना चाहिए।
डेनिस विलियमसन

जवाबों:


75

होमब्रे का उपयोग करना

brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste

या Macports

sudo port install tmux-pasteboard

निम्नलिखित को ~ / .tmux.conf के शीर्ष पर भेजें

set-option -g default-command "reattach-to-user-namespace -l zsh"

zshपोर्टेबिलिटी के लिए आप जो भी उपयोग कर रहे हैं, उसके लिए आप स्वैप करना चाहते हैं, जिसका उपयोग आपको संभवतः करना चाहिए $SHELL

=> Robots.thoughtbot.com से लिया गया


6
उपयोग करें bashयदि आप इसके बजाय बैश पर हैंzsh
तीन

मेरे बैश को सही ढंग से आरंभीकृत नहीं किया गया है (.bashrc, .bash_profile sourced नहीं)। ऐसा करने के लिए यह कैसे किया जाना चाहिए?
ब्रैड पार्क्स

1
अब विकल्प को सक्षम करना होगा brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang

4
Tmux.conf के लिए एक और अधिक मजबूत विकल्प हैset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister

5
इसके बजाय विकल्प --wrap-pbcopy-and-pbpasteका उपयोग करके हटा दिया गया था --with-wrap-pbcopy-and-pbpaste!
TaeL

11

जब tmuxकंसोल से अलग हो जाता है (अटैच / डिटैच का समर्थन करने के लिए), तो यह एक तरह से ऐसा करता है जो इसे GUI के साथ संवाद करने की अनुमति नहीं देता है।

जीएनयू में एप्पल के पैच screenएक अलग तरीके से अलग करने के लिए एक निजी सिस्टम कॉल का उपयोग करते हैं। Macports बग ट्रैकर में एक पैच है जो फिर से काम करता है pbcopy/ बनाता है pbpaste। मैंने इसे होमब्रे रेपो में भी प्रस्तुत किया, जहां इसे संक्षिप्त रूप से स्वीकार किया गया, फिर वापस कर दिया गया।

ऐसा इसलिए है क्योंकि जब इस पैच को लागू किया जाता है, तो यह एक सत्र में पुनः संलग्न होने पर tmux को क्रैश करने का कारण बनता है।

अधिक जानकारी के लिए Homebrew परियोजना के लिए जीथब पर पुल अनुरोध देखें ।


यह समझ में आता है ... सिवाय इसके कि अगर मैं दौड़ता हूं, open .एक tmux सत्र में, यह एक फाइंडर विंडो को ठीक खोलता है, इसलिए "यह GUI के साथ संवाद करने की अनुमति नहीं देता है" बहुत सटीक नहीं लगता है?
jamesdlin

5

मुझे एक github प्रोजेक्ट मिला जो tmux को लपेटता है ताकि pbpaste और pbcopy काम करें और उन मुद्दों का वर्णन न करें जिनके कारण Homebrew ने पैच को हटाया। यह संकलित करना बहुत आसान है, बस संकलन का एक छोटा सा और आपके .tmux.conf में एक पंक्ति

होमब्रेव के पास एक पैच था, लेकिन जैसा कि दूसरों ने उल्लेख किया है, इसे वापस कर दिया गया क्योंकि यह रीटेटिंग के साथ मुद्दों का कारण बना।

Tmux के खिलाफ एक मुद्दा दायर किया गया था , लेकिन इसे बंद कर दिया गया क्योंकि tmux लेखक के पास परीक्षण करने के लिए Mac नहीं है। Github tmux-MacOSX-pasteboard प्रोजेक्ट पर README के ​​पास इस बात का बहुत विवरण है कि इस मामले में पैचिंग tmux क्यों मुश्किल है, और स्थिति के आसपास की अन्य जानकारी का एक गुच्छा। यह मेरे लिए OSX 10.6 पर काम करता है और कोड के माध्यम से पढ़ने पर लगता है कि यह 10.5 के लिए भी काम करेगा।



1

यहाँ एक खुला टिकट है: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

दिनांक: 2010-02-28 11:20:57 यूटीसी प्रेषक: निकम

ऐसा कोई कारण नहीं है कि आप सिर्फ tmux showb को पाइप नहीं कर सकते, बेशक।

दिनांक: 2010-02-28 11:20:05 यूटीसी प्रेषक: निकम

तब तक नहीं जब तक कोई मुझे ऐसा करने के लिए कुछ कोड या ओएस एक्स के साथ कुछ हार्डवेयर नहीं भेजता।

मैं pbcopy करने के लिए showb पाइपिंग की कोशिश की और यह काम नहीं किया।

~: echo "12345"
12345
[use copy-mode to copy "12345"]
~: tmux showb
12345
~: tmux showb | pbcopy
~: pbpaste


1

मैं स्नो लेपर्ड और लायन दोनों पर tmux-MacOSX-pasteboard का उपयोग करता हूं और यह tmux में आपके लिए pbcopy / pbpaste कार्यक्षमता पैच करता है। स्थापित करने के लिए आसान भी।


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