Tôi đang chạy phiên bản mới nhất của tmux (từ kho git) và xclip (0.12) và tôi muốn có thể sử dụng các ràng buộc bàn phím giống như Emacs để di chuyển xung quanh văn bản trong các lựa chọn copy-mode
sao chép ( M-w
) vào bảng tạm và dán ( C-y
) từ / vào bộ đệm sao chép vào bảng tạm.
Cho đến nay tôi đã có thể dán văn bản C-y
và di chuyển xung quanh copy-mode
bằng các ràng buộc bàn phím giống như Emacs, nhưng tôi vẫn không thể sao chép văn bản từ bộ đệm tmux (ví dụ: trong copy-mode
)
Tôi tìm thấy chủ đề này để sao chép toàn bộ bộ đệm vào bảng tạm (và viceversa), nhưng dường như nó không hoạt động với tôi.
Ngoài ra, trong tmux-users
danh sách thư tôi đã nói rằng các phiên bản gần đây của tmux (chỉ trong git repo) cung cấp một lệnh được gọi copy-pipe
. Trang người đàn ông nói như sau về lệnh này:
Một lệnh trong chấp nhận một đối số, copy-pipe, sao chép vùng chọn và đặt nó vào một lệnh. Ví dụ: phần sau đây sẽ liên kết 'C-q' để sao chép vùng chọn vào / tmp cũng như bộ đệm dán:
bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
Có vẻ như copy-pipe
nó được sử dụng một phần để chuyển sự lựa chọn sang một lệnh khác. Dường như cũng có một số lỗi chính tả trong mô tả này và trong lệnh (là temacs-copy
gì?)
Dù bằng cách nào, điều tôi muốn làm là:
Đang sao chép:
- Vào chế độ sao chép
- Di chuyển đến văn bản tôi muốn sao chép sử dụng lệnh chuyển hướng Emacs (tức là
C-f
,C-b
,M-f
,M-b
,C-a
,C-e
vv để di chuyển con trỏ). Không có tiền tố cho bất kỳ trong số này. - Sao chép văn bản đã chọn vào bảng tạm với:
M-w
(cũng không có tiền tố )
Dán:
- Tôi muốn có thể nhập
C-y
( mà không phải nhậpcopy-mode
) để dán văn bản trong thiết bị đầu cuối (cũng không có tiền tố )
Tôi đã thử cách sau để sao chép mà không gặp may:
bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard"
Tuy nhiên, dán hoạt động tuyệt vời:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
Điều kỳ lạ là tôi biết rằng phần " xclip -i -selection clipboard
" của lệnh sao chép ở trên hoạt động tốt, vì tôi có thể sao chép mọi thứ vào bảng tạm trong dòng lệnh, ví dụ:
echo "Hello world. How are you?" | xclip -i -selection clipboard
Với tất cả điều này, làm thế nào tôi có thể sao chép một lựa chọn từ chế độ sao chép vào bảng tạm?