sao chép (vào X clipboard) trong .tmux.conf


22

Để sao chép văn bản vào bảng tạm X trong tmux, điều tôi hiện đang làm là:

  • đi chế độ lựa chọn với prefix[
  • bắt đầu lựa chọn với space(sử dụng mode-keys vibtw)
  • chọn văn bản và nhấn enter
  • sao chép bộ đệm tmux vào X clipboard bằng cách sử dụng prefixctrl+c

(Tôi có một ánh xạ như bind C-c run "tmux show-buffer | xclip -selection clipboard -i"

Tôi đang cố gắng loại bỏ một số bước này bằng cách tạo ánh xạ cho chế độ lựa chọn. Tôi đã thử:

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"

Điều này mang lại cho tôi và lỗi:

.. usage: bind-key [-cnr] [-t key-table] key command [arguments]

(Tôi không thể sao chép lỗi)

Làm thế nào tôi có thể sửa lỗi này?

EDIT: Tôi đã nhận ra rằng tôi có thể chọn và sao chép vào bộ đệm tmux (3 bước đầu tiên) bằng chuột giống như một lựa chọn thông thường (mặc dù tô sáng không kéo dài, nó vẫn chọn văn bản) và sau đó sử dụng liên kết sau để sao chép vào x clipboard :

bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"

(Tôi đã sử dụng phương pháp này để sao chép văn bản này và nó rất dễ dàng;)

lưu ý rằng -nbiểu thị "không có tiền tố" do đó không cần thoát. nếu bạn không bị nhầm lẫn bởi sự nổi bật biến mất thì điều này tương tự như sao chép thông thường (giao diện người dùng thông thường).

đây là điều tốt nhất tôi nghĩ ra cho đến nay ..

EDIT2: hóa ra sự ctrl+ctrùng lặp với điều gián đoạn quá trình nên ctrl+alt+cbây giờ tôi đã thay đổi . (không thích lắm)

EDIT3: tmux 1.8 trở lên đã thêm hỗ trợ để thêm keybindings trong chế độ sao chép để bây giờ ý định ban đầu đầu tiên của tôi có thể sử dụng một cái gì đó như:

bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"

Hai ràng buộc này cho phép sao chép văn bản vào clipboard khi tôi sử dụng enterhoặc yhoàn thành sao chép.

Tôi vẫn giữ dòng này trong trường hợp tôi thực hiện sao chép bằng chuột và quyết định lấy nội dung bộ đệm tmux vào clipboard sau này:

bind-key y run "tmux show-buffer | xclip -selection clipboard -i"

1
Bạn có thể thay đổi ngắt từ ctrl-c sang thứ khác bằng stty. Ví dụ: để sử dụng Ctrl-Z : stty intr=^Z. Hãy cẩn thận với lệnh đó, có thể đặt một ký tự thông thường thành ký tự ngắt (nếu bạn làm như vậy, hãy sử dụng ctrl-v để nhập nó cho đến khi sửa lỗi cài đặt). Và đừng nhầm lẫn về khóa nào được sử dụng (ví dụ: ctrl-z thường là khóa tạm dừng).
tro

@ash lưu ý, cảm ơn .. nhưng tôi nghĩ rằng tôi sẽ giữ ^clàm khóa ngắt khi tôi sử dụng nó thường xuyên hơn là sao chép. Tôi cũng đã cập nhật câu trả lời để phản ánh giải pháp hiện tại của tôi cho vấn đề này.
không có

nghe có vẻ tốt Cũng lưu ý rằng nhiều lần chạy xmodmap có thể khiến mọi thứ ở trạng thái buồn cười khó sửa, vì vậy tôi khuyên bạn nên bắt đầu làm mới với phiên X mới nếu ảnh hưởng của các lệnh xuất hiện không chính xác.
tro

chạy bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"trực tiếp mang lại:Unknown command: run
Alexej Magura

1
Tuy nhiên, chạy bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"hoạt động tốt.
Alexej Magura

Câu trả lời:


13

Câu trả lời này không trả lời trực tiếp câu hỏi của bạn về việc tạo lối tắt. Nhưng đây là những gì tôi làm.

Bạn có thể tạm thời chuyển các sự kiện phím / chuột của mình sang tmux bằng cách giữ shift. Vì vậy, bạn có thể nhấn và giữ phím Shift và người dùng thường xuyên sử dụng terminal / X để thực hiện sao chép. Trong trường hợp của tôi bằng Terminator, tôi nhấn shift, tô sáng bằng chuột bất cứ thứ gì tôi muốn, sao chép bằngCtrl+Shift+C

Và trong trường hợp bạn đã tách các bảng, bạn có thể thu phóng khung hiện tại bằng phím phóng to thu nhỏ Prefix + zvà thực hiện thao tác sao chép. (đã thử nghiệm trên tmux v1.8)


Tôi không thể sử dụng điều này vì chia tách ngang nhưng thủ thuật phóng to nghe có vẻ hay, cảm ơn vì tiền boa.
không có

Điều này hoạt động trong gnome-terminal, chắc chắn; Nhưng nó có áp dụng cho tất cả các trình giả lập thiết bị đầu cuối không? Có lẽ là không
jpaugh

Trong wsl-terminal, điều này hoạt động. Hãy cứu lấy ngày của tôi
Qinsi

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.