tmux set -g chế độ chuột trên không hoạt động


244

Tôi đã nhìn xung quanh và mọi người nói rằng đặt

set -g mouse-mode on

sẽ cho phép bạn cuộn qua đầu ra thiết bị đầu cuối khi chạy tmux. Tuy nhiên, sau khi cả hai đặt cái này vào ~/.tmux.conftập tin của tôi và nói tmux set -g mouse-mode onkhi nào trong phiên tmux, không có gì thay đổi. Khi tôi cuộn tôi vẫn ở bên ngoài tmux như cuộn trong vim với cài đặt mặc định.

Bất cứ ai biết lý do tại sao điều này?


mode-mousetrong phiên bản cũ
hyiltiz

Câu trả lời:


559

Vì vậy, tùy chọn này đã được đổi tên trong phiên bản 2.1 (18 tháng 10 năm 2015)

Từ thay đổi :

 Mouse-mode has been rewritten.  There's now no longer options for:
    - mouse-resize-pane
    - mouse-select-pane
    - mouse-select-window
    - mode-mouse

  Instead there is just one option:  'mouse' which turns on mouse support

Vì vậy, đây là những gì tôi đang sử dụng trong .tmux.conftập tin của tôi

set -g mouse on

1
Cảm ơn @ Graham42! Đây là câu trả lời chính xác. Tôi đã cập nhật tmux và nó đã bị hỏng sáng nay - điều này sửa nó.
Matthew Lehner

7
Mặc dù câu hỏi này đã được hỏi theo cách năm 2012 trước khi có sự thay đổi này, đây chỉ là câu trả lời tôi (và nhiều người khác) cần, hah
Andrew

2
hữu ích, khắc phục sự cố của tôi trong Ubuntu 16.04
sudoz

2
Mặc dù điều này đang hoạt động cho Mac, nhưng set -g mouse onnó sẽ phá vỡ khả năng chọn văn bản trong thiết bị đầu cuối của Mac. Tôi phải đặc biệt làm set -g mouse offđể chọn văn bản
Thắng

1
@Wins nhấn shift trước khi chọn hoặc dán
mdekkers

70

Như @ Graham42 đã lưu ý, tùy chọn chuột đã thay đổi trong phiên bản 2.1. Cuộn bây giờ yêu cầu bạn vào chế độ sao chép trước. Để cho phép cuộn gần giống với cách trước 2.1, hãy thêm vào sau .tmux.conf.

set-option -g mouse on

# make scrolling with wheels work
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M

Điều này sẽ cho phép cuộn trên di chuột qua một ô và bạn sẽ có thể cuộn từng ô đó theo từng dòng.

Nguồn: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
TUYỆT DIỆU! Chỉ cần đặt mousecâu trả lời được chấp nhận là không phù hợp với tôi - bí danh này vào chế độ sao chép là hoàn hảo
Gareth

2
Điều này dường như hoạt động, tuy nhiên tôi không thể chọn văn bản trong bảng nữa. Bất cứ ai khác cũng có vấn đề này?
will.fiset

64

Chỉ cần nhanh chóng đối mặt với bất cứ ai khác đang mất trí ngay bây giờ:

https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12

vậy đó chỉ là

 :setw -g mouse

1
Hoặc nếu bạn muốn nó luôn luôn bật, chỉ cần thêm set -g mousevào ~/.tmux.conf. Mặc dù lưu ý rằng điều này sẽ khiến việc sao chép / dán văn bản vào thiết bị đầu cuối thông qua chuột trở nên khó khăn hơn (tôi chắc chắn có một cách - tôi chỉ không tự mình tra cứu nó).
JM Janzen

36

cái này nên hoạt động:

setw -g mode-mouse on

sau đó tài nguyên rồi tập tin cấu hình

tmux source-file ~/.tmux.conf

hoặc giết máy chủ


Tôi đã sử dụng set -g mouse và lệnh tập tin nguồn mà bạn đưa ra, hoạt động hoàn hảo.
gospelslide

19

Dán ở đây trong ~ / .tmux.conf

set -g mouse on

và chạy trên thiết bị đầu cuối

tmux source-file ~/.tmux.conf

Cảm ơn, đã làm việc cho byobu --version byobu phiên bản 5.73 tmux 2.5 trong khi các đề xuất ở trên thì không.
Thomas

15

Như @ Graham42 đã nói, từ các tùy chọn chuột phiên bản 2.1 đã được đổi tên nhưng bạn có thể sử dụng chuột với bất kỳ phiên bản tmux nào thêm điều này vào ~ / .tmux.conf của bạn:

Bash shell:

is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Vỏ Sh (vỏ Bourne):

is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Hi vọng điêu nay co ich


1
Cảm ơn bạn! Tôi có tmux.conf trong git, và thường xuyên sử dụng máy với các phiên bản cũ hơn ... tmux
Seb

ý tưởng đằng sau câu trả lời này là thiên tài thuần túy! ... Và cũng có thể giúp cho sự styletôn trọng. fg-, bg- và attrchuyển hóa trong tmux 2.9 . nhưng nó không hoạt động vì ít nhất vỏ của tôi từ chối so sánh các số dấu phẩy động ... và nếu nội địa hóa của bạn sử dụng một cái gì đó khác hơn .là một dấu phẩy động, bạn cũng phải giải quyết vấn đề này.
DJCrashdummy

@DJCrashdummy Sản lượng tmux -V | cut -d ' ' -f2trong vỏ của bạn là gì?
Alejandro Blasco

1
Lưu ý: trên Ubuntu 19.10, phiên bản là tmux 2.9a. Vì vậy, tôi đã sử dụng tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'để phân tích nó mạnh mẽ hơn.
autra

1
Lưu ý: ít nhất là đối với tôi trên Ubuntu 18.04, ngay cả khi /bin/shlà Bash, tôi cần cú pháp Sh , có lẽ vì Bash vào chế độ POSIX
philb

1

Thử cái này. Nó hoạt động trên máy tính của tôi.

set -g mouse on

1

Bạn vẫn có thể sử dụng logic ma quỷ của các tùy chọn cài đặt tùy thuộc vào phiên bản Tmux hiện tại của bạn: xem câu trả lời trước của tôi .

Nhưng kể từ Tmux v1.7, set-optionthêm "-q" vào các lỗi im lặng và không in ra bất cứ điều gì (xem thay đổi ). Tôi khuyên bạn nên sử dụng tính năng này, nó dễ đọc hơn và dễ dàng mở rộng hơn.

Thêm phần này vào ~/.tmux.conf:

# from v2.1
set -gq mouse on
# before v2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on

Restar tmux hoặc source-filemới của bạn.tmux.conf


Lưu ý bên lề: Tôi sẵn sàng xóa câu trả lời cũ của mình nếu mọi người thích câu trả lời này

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.