tmux set -g mouse-mode on tidak berfungsi

244

Saya sudah melihat-lihat dan orang mengatakan menempatkan itu

set -g mouse-mode on

seharusnya membiarkan Anda menggulir keluaran terminal saat menjalankan tmux. Namun, setelah keduanya meletakkan ini di ~/.tmux.conffile saya dan mengatakan tmux set -g mouse-mode onketika di sesi tmux, tidak ada yang berubah. Ketika saya gulir saya masih mendapatkan di luar tmux seperti gulir di vim dengan pengaturan default.

ada yang tahu kenapa ini?

David berkata Reinstate Monica
sumber
mode-mousedalam versi lama
hyiltiz

Jawaban:

559

Jadi opsi ini telah diubah namanya dalam versi 2.1 (18 Oktober 2015)

Dari changelog :

 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

Jadi ini yang saya gunakan sekarang di .tmux.conffile saya

set -g mouse on
Graham
sumber
1
Terima kasih @ Graham42! Ini sekarang jawaban yang benar. Saya memperbarui tmux dan rusak pagi ini - ini memperbaikinya.
Matthew Lehner
7
Meskipun pertanyaan ini diajukan pada 2012 sebelum perubahan ini, ini hanya jawaban yang saya (dan banyak lainnya) butuhkan, hah
Andrew
2
berguna, perbaiki masalah saya di Ubuntu 16.04
sudoz
2
Meskipun ini berfungsi untuk Mac, set -g mouse onitu akan merusak kemampuan untuk memilih teks di terminal Mac. Saya harus secara khusus melakukan set -g mouse offuntuk memilih teks
Wins
1
@ Menangkan pers shift sebelum memilih atau menempel
mdekkers
70

Seperti yang dicatat oleh @ Graham42, opsi mouse telah berubah di versi 2.1. Menggulir sekarang mengharuskan Anda untuk masuk ke mode salin terlebih dahulu. Untuk mengaktifkan pengguliran, hampir identik dengan seperti sebelum 2.1, tambahkan berikut ini ke .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

Ini akan memungkinkan pengguliran saat mengarahkan kursor di atas panel dan Anda akan dapat menggulir panel itu baris demi baris.

Sumber: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ

Umut Sirin
sumber
2
FANTASTIS! Hanya pengaturan mousesebagai jawaban yang diterima mengatakan tidak bekerja untuk saya - alias ini yang memasuki mode salin sempurna
Gareth
2
Ini sepertinya berhasil, namun saya tidak dapat memilih teks dalam panel lagi. Adakah orang lain yang mengalami masalah ini?
will.fiset
64

Hanya dengan cepat menghubungi siapa pun yang kehilangan akal sehatnya saat ini:

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

jadi itu adil

 :setw -g mouse
pengguna5481608
sumber
1
Atau jika Anda ingin selalu, cukup tambahkan set -g mousedi ~/.tmux.conf. Meskipun perlu dicatat bahwa ini akan membuat menyalin / menempel teks ke terminal melalui mouse lebih sulit (saya yakin ada cara - saya hanya belum mencarinya sendiri).
JM Janzen
36

ini harus bekerja:

setw -g mode-mouse on

kemudian sumber daya lalu konfigurasi file

tmux source-file ~/.tmux.conf

atau bunuh server

locojay
sumber
Saya menggunakan set -g mouse dan perintah source-file yang Anda berikan, bekerja dengan sempurna.
gospelslide
19

Tempel di sini di ~ / .tmux.conf

set -g mouse on

dan jalankan di terminal

tmux source-file ~/.tmux.conf
Tran Quoc Vuong
sumber
Terima kasih, bekerja untuk byobu --version byobu versi 5.73 tmux 2.5 sementara saran di atas tidak.
Thomas
15

Seperti yang dikatakan @ Graham42, dari versi 2.1 opsi mouse telah diubah namanya tetapi Anda dapat menggunakan mouse dengan versi tmux mana pun yang menambahkan ini ke ~ / .tmux.conf Anda:

Kerang bash :

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"

Kerang Sh (Bourne shell):

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"

Semoga ini membantu

Alejandro Blasco
sumber
1
Terima kasih! Saya memiliki tmux.conf di git, dan secara teratur menggunakan mesin dengan versi tmux yang lebih lama ...
Seb
ide di balik jawaban ini adalah jenius murni! ... dan juga dapat membantu untuk styleopsi-resp. fg-, bg- dan attr-abolition di tmux 2.9 . tetapi itu tidak berfungsi karena setidaknya shell saya menolak untuk membandingkan angka floating-point ... dan jika lokalisasi Anda menggunakan sesuatu selain .sebagai floating-point, Anda juga harus mengatasi masalah ini.
DJCrashdummy
@DJCrashdummy Apa output dari tmux -V | cut -d ' ' -f2shell Anda?
Alejandro Blasco
1
Catatan: di ubuntu 19.10, versinya adalah tmux 2.9a. Jadi saya biasa tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'menguraikannya lebih kuat.
autra
1
Catatan: setidaknya untuk saya di Ubuntu 18.04, walaupun /bin/shBash, saya memerlukan sintaks Sh , mungkin karena Bash masuk ke mode POSIX
philb
1

Coba ini. Ini bekerja di komputer saya.

set -g mouse on
burung kolibri
sumber
1

Anda masih dapat menggunakan logika setan pengaturan opsi tergantung pada versi Tmux Anda saat ini: lihat jawaban saya sebelumnya .

Tapi sejak Tmux v1.7, set-optiontambahkan "-q" untuk membungkam kesalahan dan tidak mencetak apa pun (lihat changelog ). Saya merekomendasikan untuk menggunakan fitur ini, ini lebih mudah dibaca dan mudah diperluas.

Tambahkan ini ke Anda ~/.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 atau yang source-filebaru.tmux.conf


Catatan: Saya terbuka untuk menghapus jawaban lama saya jika orang lebih suka yang ini

Alejandro Blasco
sumber