Không thể sử dụng pbcopy trong khi ở phiên tmux


63

Chạy tmux 1.4 được cài đặt từ các cổng trên snow-Leopard Tôi không thể sử dụng pbcopylệnh OSX tích hợp .

Bên ngoài tmux:

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

Nhưng bên trong tmux:

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

Tôi đã truy quét trang người đàn ông nhưng không thể tìm thấy bất kỳ tùy chọn nào có thể liên quan đến hành vi này. Tôi cũng không thể hiểu tại sao tmuxsẽ lộn xộn với chuyển hướng vỏ.

Bất cứ ai có bất kỳ manh mối?


1
Lưu ý rằng điều này hoạt động bằng cách sử dụng xcliptrên Linux. Nhân tiện, echo pbpastesẽ dẫn đến "pbpaste".
Dennis Williamson

Câu trả lời:


75

Sử dụng homebrew

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

hoặc Macports

sudo port install tmux-pasteboard

Chuẩn bị các mục sau vào đầu ~ / .tmux.conf

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

Bạn có thể muốn trao đổi zshcho bất kỳ shell nào bạn đang sử dụng, cho tính di động mà bạn có thể nên sử dụng $SHELL.

Lấy từ => robot. Dùtbot.com


6
sử dụng bashnếu bạn đang sử dụng bash thay vìzsh
ba

bash của tôi không được khởi tạo chính xác (.bashrc, .bash_profile không có nguồn gốc). Làm thế nào điều này nên được thực hiện để làm điều đó?
Brad park

1
Phải kích hoạt tùy chọn ngay bây giờ brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang

4
Một tùy chọn mạnh mẽ hơn cho tmux.conf làset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister

5
thay vào đó --wrap-pbcopy-and-pbpastelà tùy chọn không dùng nữa --with-wrap-pbcopy-and-pbpaste!
TaeL

11

Khi tmuxtách khỏi bảng điều khiển (để hỗ trợ đính kèm / tách), nó sẽ thực hiện theo cách không cho phép giao tiếp với GUI nữa.

Các bản vá lỗi của GNU cho GNU screensử dụng một cuộc gọi hệ thống riêng để tách ra theo một cách khác. Có một bản vá trong trình theo dõi lỗi Macports giúp pbcopy/ pbpastehoạt động trở lại. Tôi cũng đã gửi nó cho repo Homebrew, nơi nó được chấp nhận ngắn gọn, sau đó được hoàn nguyên.

Điều này là do khi bản vá này được áp dụng, nó khiến tmux bị sập khi gắn lại vào một phiên.

Xem yêu cầu kéo trên github cho dự án Homebrew để biết thêm thông tin.


Điều này sẽ có ý nghĩa ... ngoại trừ nếu tôi chạy, giả sử, open .trong một phiên tmux, nó sẽ mở một cửa sổ Finder tốt, vì vậy "không cho phép nó giao tiếp với GUI nữa" có vẻ khá chính xác?
jamesdlin

5

Tôi đã tìm thấy một dự án github kết thúc tmux để pbpaste và pbcopy hoạt động và không có các vấn đề được mô tả khiến Homebrew gỡ bỏ bản vá. Nó khá dễ cài đặt, chỉ cần một chút biên dịch và một dòng trong .tmux.conf của bạn

Homebrew đã có một bản vá, nhưng như những người khác đã đề cập, nó đã bị loại bỏ vì nó gây ra vấn đề với việc gắn lại.

Có một vấn đề được đệ trình chống lại tmux , nhưng nó đã bị đóng vì tác giả của tmux không có máy Mac để thử nghiệm. README trên dự án github tmux-MacOSX-pasteboard có chi tiết tuyệt vời về lý do tại sao việc vá tmux lại khó khăn trong trường hợp này và một loạt các thông tin khác xung quanh tình huống này. Nó hoạt động trên OSX 10.6 đối với tôi và đọc qua mã có vẻ như nó cũng sẽ hoạt động cho 10.5.



1

Có một vé mở ở đây: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Ngày: 2010 / 02-28 11:20:57 Người gửi UTC: nicm

Tất nhiên, không có lý do gì bạn không thể chỉ giới thiệu tmux với nó.

Ngày: 2010 / 02-28 11:20:05 Người gửi UTC: nicm

Trừ khi ai đó gửi cho tôi một số mã để làm điều đó hoặc một số phần cứng có OS X trên đó.

Tôi đã thử hiển thị đường ống đến pbcopy và nó không hoạt động.

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


1

Tôi sử dụng tmux-MacOSX-pasteboard trên cả Snow Leopard và Lion và nó vá chức năng pbcopy / pbpaste cho bạn trong tmux. Dễ dàng cài đặt, quá.


3
tmux-MacOSX-pasteboard hiện đang có trong macports với tên tmux-pasteboard
anddam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.