ไม่สามารถใช้ pbcopy ขณะอยู่ในเซสชัน tmux


63

การรัน tmux 1.4 ที่ติดตั้งจากพอร์ตบนเสือดาวหิมะฉันไม่สามารถใช้pbcopyคำสั่งOSX ในตัวได้

นอกtmux:

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

แต่ภายในtmux:

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

ฉันได้ขัดหน้าคน แต่ไม่พบตัวเลือกใด ๆ ที่อาจเกี่ยวข้องกับพฤติกรรมนี้ ฉันยังไม่เข้าใจว่าทำไมtmuxจะยุ่งกับการเปลี่ยนเส้นทางเชลล์

ใครมีเบาะแสบ้าง


1
โปรดทราบว่าสิ่งนี้ใช้งานได้xclipบน Linux โดยวิธีการecho pbpasteควรจะส่งผลให้ "pbpaste"
Dennis Williamson

คำตอบ:


75

ใช้ homebrew

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. แม้ว่าtbot.com


6
ใช้bashถ้าคุณทุบตีแทนzsh
สาม

ทุบตีของฉันไม่ได้เริ่มต้นอย่างถูกต้อง (.bashrc, .bash_profile ไม่ได้มีที่มา) สิ่งนี้ควรทำอย่างไรเพื่อทำเช่นนั้น?
Brad Parks

1
ต้องเปิดใช้งานตัวเลือกตอนนี้ brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
เอียนหยาง

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 อีกต่อไป

ซอฟต์แวร์ของ Apple ไปยัง GNU screenใช้การเรียกระบบส่วนตัวเพื่อแยกออกในลักษณะที่ต่างออกไป มีโปรแกรมแก้ไขในตัวติดตามบัก Macports ที่ทำให้pbcopy/ pbpasteทำงานได้อีกครั้ง ฉันยังส่งมันไปที่ repository Homebrew ซึ่งเป็นที่ยอมรับสั้น ๆ แล้วเปลี่ยนกลับ

นี่เป็นเพราะเมื่อมีการใช้โปรแกรมแก้ไขนี้ทำให้ tmux ขัดข้องเมื่อทำการแนบกับเซสชันอีกครั้ง

ดูคำขอดึงบน GitHubสำหรับโครงการ Homebrew สำหรับข้อมูลเพิ่มเติม


นี่จะสมเหตุสมผล ... ยกเว้นว่าถ้าฉันเรียกใช้พูดopen .ในเซสชั่น tmux มันจะเปิดหน้าต่าง Finder ได้ดีดังนั้น "ไม่อนุญาตให้สื่อสารกับ GUI อีกต่อไป" ดูเหมือนจะไม่ถูกต้องใช่ไหม
jamesdlin

5

ฉันพบโครงการ github ที่ล้อม tmuxเพื่อให้ pbpaste และ pbcopy ทำงานและไม่มีปัญหาที่อธิบายซึ่งทำให้ Homebrew ลบ patch ออก มันค่อนข้างง่ายต่อการติดตั้งเพียงเล็กน้อยในการรวบรวมและหนึ่งบรรทัดใน. tmux.conf ของคุณ

Homebrew มีแพตช์ แต่อย่างที่คนอื่นพูดถึงมันก็สำรองเอาไว้เพราะมันทำให้เกิดปัญหากับการติดตั้งซ้ำ

มีปัญหายื่นต่อ tmuxแต่ถูกปิดเพราะผู้เขียน tmux ไม่มี Mac ที่จะทำการทดสอบ README ในโครงการ github tmux-MacOSX-pasteboard มีรายละเอียดที่ดีว่าทำไมการแก้ไข tmux นั้นยากในกรณีนี้และข้อมูลอื่น ๆ อีกมากมายที่อยู่รอบ ๆ สถานการณ์ มันใช้งานได้กับ OSX 10.6 สำหรับฉันและการอ่านรหัสดูเหมือนว่าจะใช้งานได้ 10.5 เช่นกัน


3

ปัญหานี้จะแก้ไขได้ด้วยการเปิดตัว (2.6) การเปลี่ยนแปลงล่าสุดhttps://raw.githubusercontent.com/tmux/tmux/2.6/CHANGES


1

มีตั๋วเปิดอยู่ที่นี่: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

วันที่: 2010-02-28 11:20:57 UTC ผู้ส่ง: nicm

มีเหตุผลที่คุณไม่สามารถไปที่ท่อ tmux showb ได้แน่นอน

วันที่: 2010-02-28 11:20:05 UTC ผู้ส่ง: nicm

ไม่ใช่ถ้าไม่มีใครส่งรหัสให้ฉันเพื่อทำมันหรือฮาร์ดแวร์บางตัวที่มี OS X อยู่

ฉันลอง piping showb ไปที่ pbcopy และมันไม่ทำงาน

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


1

ฉันใช้tmux-MacOSX-pasteboardทั้ง Snow Leopard และ Lion และมันเป็นตัวแก้ไข pbcopy / pbpaste เพื่อคุณใน tmux ติดตั้งง่ายเช่นกัน


3
tmux-MacOSX-pasteboard ขณะนี้อยู่ใน macports เช่นกันกับชื่อ tmux-
pasteboard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.