tmux set -g โหมดเมาส์เปิดไม่ทำงาน


244

ฉันได้รับการมองไปรอบ ๆ และมีคนพูดว่าใส่

set -g mouse-mode on

ควรให้คุณเลื่อนดูเทอร์มินัลเอาต์พุตเมื่อรัน tmux อย่างไรก็ตามหลังจากทั้งสองวางสิ่งนี้ลงใน~/.tmux.confไฟล์ของฉันและบอกว่าtmux set -g mouse-mode onเมื่อใดในเซสชัน tmux ไม่มีอะไรเปลี่ยนแปลง เมื่อฉันเลื่อนฉันยังคงได้รับด้านนอกของ tmux เช่นการเลื่อนเป็นกลุ่มด้วยการตั้งค่าเริ่มต้น

ใครรู้ว่าทำไมนี้คืออะไร


mode-mouseในเวอร์ชั่นเก่า
hyiltiz

คำตอบ:


559

ดังนั้นตัวเลือกนี้จึงถูกเปลี่ยนชื่อเป็นเวอร์ชัน 2.1 (18 ตุลาคม 2558)

จากการเปลี่ยนแปลง :

 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

นี่คือสิ่งที่ฉันใช้ตอนนี้ใน.tmux.confไฟล์ของฉัน

set -g mouse on

1
ขอบคุณ @ Graham42! นี่เป็นคำตอบที่ถูกต้องแล้ว ฉันอัปเดต tmux แล้วและมันพังเมื่อเช้านี้ - นี่แก้ไขได้
Matthew Lehner

7
แม้ว่าคำถามนี้ถูกถามในปี 2012 ก่อนที่จะมีการเปลี่ยนแปลง แต่นี่เป็นเพียงคำตอบที่ฉันต้องการ (และอื่น ๆ อีกมากมาย) hah
Andrew

2
มีประโยชน์ให้แก้ไขปัญหาของฉันใน Ubuntu 16.04
sudoz

2
ขณะนี้ใช้งานได้กับ Mac set -g mouse onแต่จะทำลายความสามารถในการเลือกข้อความในเทอร์มินัลของ Mac ฉันต้องทำเฉพาะset -g mouse offเพื่อเลือกข้อความ
ชนะ

1
@ ชนะกดปุ่ม Shift ก่อนที่จะเลือกหรือวาง
mdekkers

70

ตามที่ @ Graham42 ระบุไว้ตัวเลือกเมาส์จะเปลี่ยนไปในเวอร์ชั่น 2.1 การเลื่อนตอนนี้ต้องการให้คุณเข้าสู่โหมดการคัดลอกก่อน ต้องการเปิดใช้งานการเลื่อนเกือบจะเหมือนกับว่ามันเป็นก่อน 2.1 .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

สิ่งนี้จะช่วยให้การเลื่อนบนโฮเวอร์เหนือบานหน้าต่างและคุณจะสามารถเลื่อนบานหน้าต่างทีละบรรทัด

ที่มา: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
ยอดเยี่ยม! เพียงตั้งค่าmouseเป็นคำตอบที่ยอมรับว่าไม่ทำงานสำหรับฉัน - นามแฝงนี้ซึ่งเข้าสู่โหมดการคัดลอกเป็นที่สมบูรณ์แบบ
Gareth

2
ดูเหมือนว่าจะใช้งานได้ แต่ฉันไม่สามารถเลือกข้อความในบานหน้าต่างอีกต่อไป ใครมีปัญหานี้อีกหรือไม่
will.fiset

64

เป็นเพียงแค่การพูดถึงใครก็ตามที่กำลังสูญเสียความคิดในขณะนี้:

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

นั่นเป็นเพียง

 :setw -g mouse

1
หรือถ้าคุณต้องการมันเสมอเพียงแค่เพิ่มในset -g mouse ~/.tmux.confแม้ว่าโปรดทราบว่าสิ่งนี้จะทำให้การคัดลอก / วางข้อความลงในเทอร์มินัลผ่านเมาส์ยากขึ้น (ฉันแน่ใจว่ามีวิธี - ฉันไม่ได้ค้นหามันเอง)
JM Janzen

36

สิ่งนี้ควรใช้งานได้:

setw -g mode-mouse on

จากนั้นทรัพยากรจะกำหนดค่าไฟล์

tmux source-file ~/.tmux.conf

หรือฆ่าเซิร์ฟเวอร์


ฉันใช้ set -g mouse on และคำสั่งซอร์สไฟล์ที่คุณให้มาทำงานได้อย่างสมบูรณ์
gospelslide

19

วางที่นี่ใน ~ / .tmux.conf

set -g mouse on

และรันบนเทอร์มินัล

tmux source-file ~/.tmux.conf

ขอบคุณทำงานกับ byobu --version byobu รุ่น 5.73 tmux 2.5 ในขณะที่คำแนะนำข้างต้นไม่ได้
โทมัส

15

ดังที่ @ Graham42 กล่าวว่าตัวเลือกเมาส์เวอร์ชัน 2.1 ถูกเปลี่ยนชื่อแล้ว แต่คุณสามารถใช้เมาส์กับ tmux รุ่นใดก็ได้ที่เพิ่มสิ่งนี้ลงใน ~ / .tmux.conf ของคุณ:

Bash shells:

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"

กระสุนSH (บอร์นเชลล์):

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"

หวังว่านี่จะช่วยได้


1
ขอบคุณ! ฉันมี tmux.conf ในคอมไพล์และใช้เป็นประจำเครื่องที่มีรุ่น tmux เก่า ...
Seb

แนวคิดเบื้องหลังคำตอบนี้เป็นอัจฉริยะบริสุทธิ์! ... และยังสามารถช่วยstyleตัวเลือกตอบรับได้อีกด้วย fg- bg- และattr-abolition ใน tmux 2.9 แต่มันใช้งานไม่ได้เพราะอย่างน้อยเปลือกของฉันปฏิเสธที่จะเปรียบเทียบจำนวนจุดลอยตัว ... และหากการแปลของคุณใช้อย่างอื่นนอกเหนือ.จากจุดลอยตัวคุณต้องแก้ไขปัญหานี้ด้วย
DJCrashdummy

@DJCrashdummy การส่งออกของtmux -V | cut -d ' ' -f2ในเชลล์ของคุณคืออะไร?
Alejandro Blasco

1
หมายเหตุ: บน Ubuntu 19.10 เวอร์ชันเป็น tmux 2.9a ดังนั้นฉันจึงใช้tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'การแยกวิเคราะห์อย่างแน่นหนายิ่งขึ้น
autra

1
หมายเหตุ: ที่อย่างน้อยสำหรับฉันบน Ubuntu 18.04 แม้ว่า/bin/shเป็นทุบตีฉันต้องการShไวยากรณ์อาจจะเป็นเพราะทุบตีเข้าสู่โหมด POSIX
philb


1

คุณยังสามารถใช้ตรรกะปีศาจตัวเลือกการตั้งค่าขึ้นอยู่กับรุ่น Tmux ปัจจุบันของคุณ: เห็นก่อนหน้าของฉันคำตอบ

แต่เนื่องจาก Tmux v1.7 set-optionเพิ่ม "-q" เพื่อเงียบข้อผิดพลาดและไม่พิมพ์อะไรออกมา (ดูการเปลี่ยนแปลง ) ฉันแนะนำให้ใช้คุณสมบัตินี้มันสามารถอ่านได้และขยายได้ง่ายขึ้น

เพิ่มลงในของคุณ~/.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 หรือsource-fileใหม่ของคุณ.tmux.conf


ด้านหมายเหตุ: ฉันเปิดเพื่อลบคำตอบเก่าของฉันถ้าคนชอบนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.