Menggulir mouse tidak bekerja di tmux seperti cara kerjanya ketika saya menjalankan shell tanpa tmux (di Gnome Terminal). Tampaknya tmux mengirimkan acara gulir mouse seolah-olah saya menekan tombol Atas / Bawah. Tapi saya ingin menggulir melalui sejarah keluaran shell . Apakah ada cara untuk membuat tmux berfungsi seperti ini?
Catatan: Saya tahu cara menggulir dengan keyboard (terima kasih untuk pertanyaan lain di sini).
Saya mencoba menggulir mouse dalam dua versi tmux:
- 0.8-5hardy1 (di Ubuntu 8.04 (Hardy Heron))
- 1.3-1 (di Ubuntu 10.10 (Maverick Meerkat))
Jawaban:
Untuk menggulir dalam riwayat output Anda akan menggunakan
^b
+[
Anda kemudian dapat menggunakan M + V untuk halaman ke atas dan ^ V ke halaman ke bawah. Saya tidak tahu apakah Anda dapat menggunakan yang asli PgUpdan PgDownsebenarnya. Terminal saya tidak mengirim kunci-kunci ini ke tmux. Alih-alih itu bergulir sendiri dan bukan sejarah tmux.Untuk keluar dari mode salin, tekan ESC
Untuk menggunakan mouse Anda dalam mode ini (disebut mode salin) tekan
^b
+:
dan masukkan berikut ini:Catatan: Di tmux <2.1, opsi itu bernama
mode-mouse
, dan tidakmouse
Sekarang ketika Anda mengubah ke mode salin Anda dapat menggunakan mouse Anda untuk menggulirnya. Anda dapat menempatkan perintah ini di ~ / .tmux.conf Anda jika Anda menginginkannya setiap kali Anda menjalankan tmux.
Pembaruan: Pada tmux 1.5 opsi ini membuat menggunakan roda gulir secara otomatis beralih ke mode salin dan gulir kembali buffer tmux scrollback. Tidak perlu lagi menekan
Ctrl-B
+[
lagi. Menggulir kembali ke bawah ke prompt juga mengakhiri mode salin secara otomatis.sumber
set -g mouse on
bekerja untuk saya di macOS tmux 2.1Ada beberapa perubahan untuk Tmux 2.1
Mode mouse telah ditulis ulang. Sekarang tidak ada opsi lagi untuk:
Sebaliknya hanya ada satu opsi: 'mouse' yang menyalakan dukungan mouse sepenuhnya.
Itu akan menjadi
sumber
bind
tampaknya tidak diperlukan lagi pada tmux 2.3set -g mouse on
. Komentar sebelumnya benar. Ikatan tidak lagi dibutuhkan.Versi tmux (1.5) saat ini memungkinkan Anda cukup mengatur opsi mode-mouse, dan memungkinkan Anda untuk menggulir dengan roda mouse.
Di .tmux.conf saya:
sumber
C-A PgUp
untuk melakukan itu. Anda dapat mengikat kunci laman langsung dengantmux bind-key -n PPage copy-mode -u
. Thign serupa harus berfungsi untuk shift + pageup jika Anda melepaskan ikatannya dari terminal lokal Anda.Coba ini di .tmux.conf Anda
Diambil dari http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY
sumber
escape-time
pengaturanSeseorang (dari sumber yang saya hilangkan) menyarankan menambahkan yang berikut ke
~.tmux.conf
:Saya tidak tahu cara kerjanya atau apa fungsinya, tetapi sekarang ini memungkinkan saya untuk menggulir dengan roda mouse di dalam sesi tmux tanpa harus masuk ke mode salin tmux; Saya hanya gulir roda dan BAM! berhasil. Perhatikan bahwa saya menggunakan terminal.app, tapi saya ingat OP memberikan jawaban khusus untuk digunakan
gnome-terminal
.sumber
less
. Jika saya memuatless
di dalamtmux
, gulir mouse tidak menggulung file yang dibukaless
. Ini menggulung seluruh terminal. Anehnya,vim
berperilaku seperti yang diharapkan di dalamtmux
dengan pengaturan Anda.setw -g mode-mouse on
opsi, yang melakukan scrollback mode salin menggunakan roda mouse.man xterm
penjelasan layar alternatif.tmux 2.1 memperkenalkan ikatan mouse baru.
Saya menulis ikatan ini sekarang hari ini. Ini mulus mengikat roda mouse ke panah ketika tidak di Vim, karena Vim mampu menafsirkan kode roda mouse mentah (untuk tujuan seperti memilih jendela Vim mana yang akan digulirkan untuk Anda tergantung pada mana mouse Anda berakhir).
Ini berarti kita akhirnya dapat menggunakan mouse hanya untuk melihat banyak halaman manual dan apa pun yang menerima tombol panah. Anda dapat memperluas dan rantai
if
logika yang diperlukan untuk menerapkan lebih banyak logika untuk aplikasi Anda.Dengan kemampuan mengikat roda baru ini, Anda dapat membuat skrip roda mouse untuk melakukan perilaku sensitif konteks apa pun yang Anda sukai.
sumber
Gnome-terminal melakukan beberapa tipu daya yang menterjemahkan kejadian gulir mouse ke tombol panah Atas dan Bawah dalam kondisi pengguliran "biasa" yang terbatas. Sebagai contoh, ketika Anda melihat beberapa teks menggunakan
less
(ini terjadi khususnya ketika Anda sedang membaca seorang pria), Anda dapat menggulir konten menggunakanj
,k
dan tombol panah. Tetapi juga , dengangnome-terminal
, Anda dapat melakukannya dengan menggulir mouse, berkat trik yang disebutkan.Jadi saya kira
tmux
melakukan beberapa "menangkap" terminal sepertiless
- dan mekanisme yang sama dalamgnome-terminal
tendangan dalam: pengguliran mouse diterjemahkan ke dalam penekanan tombol panah Atas / Bawah.Anda dapat mematikan fitur ini di pengaturan profil dan mendapatkan scrolling biasa dalam keadaan apa pun. Hanya hapus kotak centang terakhir di tab "bergulir": .
sumber
gnome-terminal
berhenti mengirim tiga kali lipat^[[A
dan^[[B
mouse-scroll. Ini lebih baik dalamtmux
(tidak ada jelek^[[A^[[A^[[A
di beberapa program, tidak ada perintah-sejarah-gulir jelek), tetapi sekarangless
berhenti menggulir pada mouse-gulir.i
karakter)https://github.com/NHDaly/tmux-better-mouse-mode
Implementasi kontrol mouse yang dapat dikonfigurasi dan kaya fitur untuk tmux baru. sangat dianjurkan.
Anda mungkin ingin menggunakannya
dengan itu juga.
sumber
Anda dapat menggabungkan ide-ide yang mengikat dari jawaban lain untuk mendapatkan perilaku penggulir yang cukup memuaskan: bekerja dalam perubahan vim ke mode salin secara otomatis di terminal dan keluar ketika Anda mencapai bagian bawah masih memungkinkan Anda untuk menggunakan roda mouse secara manual, lebih sedikit dan jurnal.
Kode saya:
Anda dapat menambahkan perintah lain yang memerlukan tombol panah untuk menggulir di bagian grep -e 'man'
saya menambahkan tombol-kirim beberapa kali, jadi satu centang pada roda mouse akan menggulir 4 baris sekaligus
sumber
Jika Anda sudah dalam sesi tmux Anda dapat menjalankan perintah
Pengingat: untuk menjalankan perintah, gunakan awalan Anda kemudian
:
.sumber