Sao chép vào clipboard từ Tmux trong El Capitan


19

Tôi khá hài lòng với các thay đổi của Terminal trong El Capitan (xem ví dụ câu hỏi này ).

Tuy nhiên, tôi không thể tìm ra cách kích hoạt sao chép vào bảng tạm hệ thống từ bên trong Tmux. Chẳng hạn, bây giờ tôi có thể chọn văn bản trong Tmux đúng cách bằng chuột, làm cách nào tôi có thể sao chép văn bản đã chọn vào bảng tạm, ngoài bộ đệm riêng của Tmux?

Tôi có những điều sau đây tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Tôi đã thử sửa đổi dòng cuối cùng thành

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

nhưng nó không thực sự hoạt động. Sẽ biết ơn những lời đề nghị!

Cảm ơn!


Cmd-C không hoạt động?
nohillside

1
@partix - không, vì văn bản đã sao chép được tự động bỏ chọn sau khi nhả nút chuột (hoặc bàn di chuột). Tất nhiên nó hoạt động trong Terminal, nhưng không phải từ Tmux trong terminal.
siphiuel

Cập nhật lên Tmux 2.1 đã phá vỡ cuộn chuột trong các bảng Tmux.
siphiuel

Câu trả lời:


27

Trên thực tế, tôi chỉ tìm ra giải pháp rất đơn giản làm thế nào để cho phép sao chép bằng Cmd + C một lần nữa.

Trong ứng dụng Terminal mặc định, đi tới Xem -> "Cho phép báo cáo chuột" và bỏ chọn nó. Đó là nó.

PS: Rõ ràng, các tính năng mới hay như kéo màn hình chia nhỏ trong tmux ngừng hoạt động sau khi bỏ chọn báo cáo chuột.


PS: Tôi đã sử dụng giải pháp trước đây từ @siphiuel, cũng hoạt động tốt.
Oplatek

1
Cảm ơn bạn!!! Đây là cách đơn giản nhất! Chỉ có điều lịch sử đã bị phá vỡ. Tôi chỉ có thể thấy một phần của hitstory
Sato

Rất tuyệt. Công trình này
ShikharDua

và điều này cũng hoạt động cho một phiên tmux từ xa; Tôi nghĩ rằng bind-key ... copy-pipegiải pháp có thể chỉ hoạt động nếu đó là phiên tmux cục bộ. Sau đó, một lần nữa, có thể nếu bạn thực hiện phiên tmux từ xa trong phiên tmux cục bộ, nó có thể hoạt động không? Dù sao, việc bỏ chọn "Cho phép báo cáo chuột" đã có hiệu quả đối với tôi và thậm chí còn có một phím tắt ⌘-R (Cmd-R) để bạn có thể nhanh chóng tắt nó để tạo một bản sao, sau đó bật lại.
Aaron Wallentine

24

Nếu bạn sử dụng iTerm2 3.x, bạn có thể thực hiện sao chép / dán hoạt động bằng cách bật Applications in terminal may access clipboard:

nhập mô tả hình ảnh ở đây

Chỉ cần tô sáng văn bản bằng chuột để sao chép nó vào bảng tạm OS X!

Bạn cũng có thể dán từ bảng tạm OS X vào tmux bằng Cmd+ thông thường V.


2
đây là giải pháp dễ nhất cho tôi
lennart

Điều này thật tuyệt!
mljrg

17

Nếu bạn giữ phím chức năng, bạn cũng có thể chọn và sao chép vào clipboard với apple + c.


Chúng tôi đang tìm kiếm một cái gì đó nhiều hơn một câu trả lời duy nhất. Hãy thử mở rộng câu trả lời của bạn để cung cấp thêm chi tiết.
Allan

2
@ ALLan Đây là một câu trả lời hoàn chỉnh, mặc dù đó chỉ là một dòng duy nhất. Nó đơn giản mà.
pkuhar

btw, tôi thấy nó chỉ hoạt động trên bàn phím máy tính xách tay, không gắn bàn phím :(
amohr

8

Thật ra, tôi đã sai khi nói rằng copy-pipenó không hoạt động. Nó, và copy-selectionsau đó là không cần thiết, vì copy-pipecả hai bản sao văn bản vào bảng pastux Tmux và ống dẫn đến một lệnh shell tùy ý. Vì vậy, dòng sau hoạt động:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Tuy nhiên, người ta cần nhấn ytrước khi nhả nút chuột. Tôi đã tình cờ thấy điều này trong tài liệu về plugin tmux-yank :

"Khi thực hiện lựa chọn bằng cách sử dụng chế độ tmux chuột hoặc chế độ sao chép chuột chế độ, bạn không thể dựa vào hành vi 'thả chuột sau khi chọn để sao chép' mặc định. Thay vào đó, nhấn y trước khi thả chuột."

Vì vậy, nó hoạt động, nhưng với một số khó chịu cần phải nhấn yđể sao chép văn bản chọn chuột.


3
Nếu bạn đang sử dụng Terminal.app: trong macOS Sierra thì điều này sẽ không hoạt động do hồi quy trong hành vi Terminal.app. Bạn sẽ cần sử dụng lại hack "reattach-to-user-không gian tên".
m1keil

1
Đồng ý với nhận xét @ m1keil. Hơn nữa, vì một số lý do, tôi đã phải biên dịch không gian tên reattach-to-user với các công tắc bổ sung, như thế này: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(tôi đang sử dụng Homebrew)
siphiuel

4

Sử dụng tmux phiên bản 2.2 trở lên, thêm phần sau vào tệp tmux.conf của bạn:

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

Hoạt động cho El Capitan 10.11, tmux 2.7
Homer

3

Câu trả lời của @Oplatek có hiệu lực

Trong ứng dụng Terminal mặc định, đi tới Xem -> "Cho phép báo cáo chuột" và bỏ chọn nó.

Nhưng bằng cách này, chúng tôi sẽ không thể cuộn màn hình bằng chuột.

Đây là một cách khác mà không vô hiệu hóa Allow mouse reporting: Bấm Fnvà chọn văn bản bằng chuột.


0

Sử dụng tmux 2.2, OS X El Capitan, Terminal Phiên bản 2.6.1 (mặc định đi kèm với El Capitan), thiết lập sau hoạt động hoàn hảo (cho đến nay).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Để sao chép, nhấn nút chuột trái, đánh dấu văn bản và cho đi. Văn bản được đánh dấu sau đó trong bảng tạm và có thể được dán bằng Cmd+ vnhư bình thường.


-2

tôi chỉ tìm một cách

mở cài đặt / cấu hình thiết bị đầu cuối trong thông tin thiết bị đầu cuối thay đổi loại thiết bị đầu cuối từ xterm-256 sang ansi mở cửa sổ thiết bị đầu cuối mới và tận hưởng :)

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.