Pertanyaan Bagaimana saya menggulirkan tmux?


Saya baru saja mulai menggunakan tmux, dan saya sangat menyukainya, tetapi saya harus bisa menggulir di dalam buffer / panel / jendela yang telah saya buka. Saya tidak peduli apakah itu bekerja dengan mouse atau tidak. Ketika saya mencari halaman manual tmux, saya hanya menemukan dua contoh dari kata "gulir" bahkan muncul, dan keduanya harus dilakukan dengan mode salin. Apakah ada cara untuk menggulir tanpa semua overhead memasuki mode penyalinan?


1061
2017-11-10 18:40


asal


Overhead apa yang Anda khawatirkan? copy-mode adalah cara untuk melihat riwayat (dan secara opsional menyalin hal-hal dari itu). - Chris Johnsen
bagi saya Anda dapat menekan f7 untuk mode gulir dan q untuk keluar - JohnMerlino
set -g mode-mouse on Jawaban per @ chaiyachaiya adalah pemenang bagi saya - Peter Berg


Jawaban:


Ctrl-b kemudian [ maka Anda dapat menggunakan tombol navigasi normal untuk menggulir (mis. Panah Atas atau PgDn). tekan q untuk keluar dari mode gulir.

Atau Anda dapat menekan Ctrl-b  PgUp untuk langsung masuk ke mode salin dan gulirkan satu halaman ke atas (seperti yang Anda inginkan sebagian besar waktu)

Di vi mode (lihat di bawah), Anda juga dapat menggulir halaman naik / turun baris demi baris menggunakan Bergeser-k dan Bergeser-j (jika Anda sudah dalam mode gulir). Tidak tergeser, kursor bergerak sebagai ganti halaman.

Kutipan dari halaman manual:

tmux dapat dikontrol dari klien terlampir dengan menggunakan kombinasi kunci dari kunci awalan, 'C-b' (Ctrl-b) secara default, diikuti oleh kunci perintah.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

Ditambah banyak lagi. Perhatikan bahwa Anda harus menekan C-b dua kali jika Anda menggunakannya untuk halaman Facebook sejak C-b terikat sebagai kunci perintah. Lihat halaman manual untuk informasi tentang prefacing perintah mode salin dengan jumlah pengulangan.

Anda dapat mengatur mode pengikatan tombol menggunakan Ctrl-b, kemudian

:set-window-option mode-keys emacs

atau vi.


1296
2017-11-11 03:02



kupikir C-b = aku s choose-buffer secara default. Apakah yang kamu maksud C-b [ (yang mana copy-mode secara default)? Anda juga bisa menggunakan C-b PageUp untuk memulai menyalin-mode langsung pada halaman sebelumnya (sangat berguna ketika Anda tahu apa yang ingin Anda lihat / salin telah menggulir halaman saat ini). - Chris Johnsen
Benar, tmux saya tidak memiliki mode gulir. Kamu butuh C-b [ untuk masuk ke mode copy dan kemudian menggunakan emacs atau vi key-bindings untuk menggulir. Ini sepertinya banyak langkah hanya untuk menggulir, tetapi manfaat tmux masih lebih besar daripada gangguan ini. Saya menggunakan macbook dan tidak ada tombol PageUp: - \. (Juga, bagaimana cara membuat kunci dengan penurunan harga seperti yang Anda lakukan, Dennis?) - chadoh
@chadoh: Coba ini di Macbook Anda: Home: fn-LeftArrow; Akhir: fn-RightArrow; Page Up: fn-UpArrow; Halaman Bawah: fn-DownArrow. Untuk membuat keycaps: <kbd>Ctrl</kbd> - Dennis Williamson
di macbook, fn + naik langsung ke aplikasi terminal dan tidak pernah menyentuh tmux - Tyler
Pada macbook jika Anda dalam mode gulir, Anda dapat menggunakan fn + Shift + LeftArrow untuk menggulir halaman. - Nick Hammond


Nah, Anda harus mempertimbangkan cara yang tepat untuk mengatur gulir: tambahkan di Anda tmux.conf

set -g mouse on        #For tmux version 2.1 and up

atau

set -g mode-mouse on   #For tmux versions < 2.1

Itu berhasil bagi saya di jendela dan panel. Sekarang tmux sempurna.

Tmux praktis memiliki info lebih lanjut tentang file tmux.conf.


237
2017-11-25 13:05



Ketika saya melakukan ini, klik mouse dan gulir menyebabkan karakter nonsens untuk dicetak ke area prompt terminal yang saya gunakan dengan tmux. Ada ide? - ely
Pengguna tmux mouse di masa mendatang: Untuk menyelamatkan Anda harus menggulir ke bawah lagi sebelum mengetik, Anda dapat menekan q untuk keluar dari mode gulir. - Jezen Thomas
Pengguliran mouse berfungsi baik dengan ini, tapi sayangnya saya tidak bisa menggunakan mouse untuk memilih teks lagi. Menggunakan Tilda dan tmux. - friederbluemle
Perhatikan bahwa dalam tmux 2.1 dan lebih tinggi, ini diganti dengan set -g mouse on, dan menggulir tidak secara otomatis memasuki mode penyalinan seperti sebelumnya. - thrnio
Catatan penting: Pengaturan ini memecah sorotan dan menyalin teks. Gunakan shift + klik untuk mempertahankan fungsi ini. - Shadoninja


Dari .tmux.conf saya:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Ini memungkinkan pengguliran xterm asli.


125
2017-08-22 20:49



Bisakah Anda menjelaskan apa yang sebenarnya terjadi? - Ivo
Saya tidak tahu apa yang dilakukannya, tetapi itu benar-benar genius. Akhirnya, gulir tmux bekerja, yay! - oneself
Ini tidak bekerja untuk saya di OS X ... - Nick
Larutan: gist.github.com/1297707 - Nick
Lihat ini jika Anda bingung tentang jawaban togdon: superuser.com/questions/310251/…   IMO, jika Anda hanya memiliki satu panel, solusi ini bekerja lebih baik daripada jawaban yang diterima. - thameera


Untuk tmux 2.1 terbaru, untuk menggulir dengan mouse Anda dengan aman, ini adalah jawaban yang benar:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

itu tidak cukup hanya memuat kembali .tmux.conf Anda harus me-restart tmux Anda, mis. tmux kill-server && tmux

diambil dari https://github.com/tmux/tmux/issues/145


39
2017-12-01 16:09



Bagaimana ini bukan jawaban yang diterima? - Marcel
catatan dalam jawaban ini tentang "tidak cukup hanya memuat ulang .tmux.conf membantu" dan keluar dari semua sesi tmux untuk saya (mungkin kill-server akan berfungsi) membantu! - Colin D
bisakah Anda menjelaskan cara kerjanya? - oligofren
Tampaknya untuk meneruskan acara mouse saat mouse diklik / digulir / dll. jika panel dalam keadaan tidak langsung / buffer (hanya copy-mode?), dan mouse menekan tombol, menggulir, dll. Bagian terakhir meliputi menggulir dalam mode langsung dengan beralih ke mode tidak langsung terlebih dahulu. Jika bukan untuk kontrol-kontrol itu, terminal mungkin menafsirkan peristiwa-peristiwa itu sebagai bergulir sejarah, jika sama sekali. Dengan mengatakan itu, saya tidak tahu apakah saya bisa mendapatkan pager dan Vim saya untuk menggulir dengan benar pada saat yang sama, dan saya sudah mencoba banyak potongan yang terjadi. - John P


Dalam kasusku, adil memilih + UpArrow dan memilih + DownArrow di OSX.


12
2018-04-17 03:43



@ fixer1234 Pertanyaannya tidak menyebutkan Linux sama sekali. tmux dapat digunakan di OS X juga. - slhck
@slhck: Terima kasih. Mata terlalu murung; astigmatisme menendang. Saya salah membaca tag tmux sebagai tag linux. - fixer1234


Ini adalah cara saya membuatnya bekerja, dan alasan mengapa saya pikir itu lebih baik daripada cara default.

Untuk mencobanya, masukkan semua bagian kode ~/.tmux.conf.

Langkah 1. Ubah awalan kunci sehingga Anda tidak perlu mencapai satu bit pun. 'B' nampaknya merupakan kunci yang dekat, tetapi berada di tengah dua jari telunjuk (masing-masing pada 'F' dan 'J'). Karena pintasan itu penting dalam tmux, C-j jauh lebih baik karena melibatkan gerakan tangan nol (selain dari menekan tombol).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Langkah 2. 'S' (untuk masuk copy-mode) adalah: 1) close (alasan yang sama seperti di atas), 2) melibatkan sisi lain (bandingkan: 1-2 dalam tinju, atau ls perintah untuk melihat file dalam direktori), dan 3) dapat dianggap sebagai mnemonik untuk "gulir" (meskipun mode salin bukan hanya tentang menggulir).

bind s copy-mode

Langkah 3. Bagian terakhir, scrolling sebenarnya. 'P' dan 'N' akrab untuk tujuan ini bagi pengguna Emacs. Mereka dekat, intuitif ('P' di atas 'N' pada keyboard), dan mnemonik ("sebelumnya" dan "berikutnya"). Jika Anda baru saja melakukan scrolling di Emacs, dan kemudian pergi ke tmux, masuk akal untuk memiliki pintasan tersebut.

Namun, saya menemukan bahwa 'Saya' dan 'K' lebih baik - mereka bahkan lebih dekat daripada 'P' dan 'N', dan intuitif (untuk alasan yang sama); seperti untuk mnemonik - seperti menggulir adalah hal yang umum untuk dilakukan, mnemonik tidak akan terlalu penting karena pintasan akan segera melewati otak Anda dan memasuki memori otot.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

10
2018-06-21 15:33





Saya mencari banyak untuk ini dan solusi terbaik untuk saya bekerja seperti yang disebutkan dalam panduan rinci ini: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Tambahkan bindings ini di ~ / .tmux.conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

Dengan menerapkan pendekatan di atas, Anda dapat menyalin dari panel di jendela juga oleh zooming ke setiap panel pertama menggunakan Awalan  +.

Satu detail penting yang hilang dengan mode mouse adalah menekan Bergeser sebelum memilih area untuk menyalin. Ini akan menyalinnya ke buffer terminal tradisional daripada buffer penyalinan tmux. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)


6
2018-03-31 00:42



Hargai jawaban Anda. Tetapi banyak kali tautan yang dirujuk dapat rusak. Akan selalu bermanfaat untuk menambahkan bagian inti dari jawaban Anda di sini dan memberikan tautan hanya untuk referensi. - Prasanna


Saya akan merekomendasikan memberikan mencoba tmux-better-mouse-mode plugin untuk menyelesaikan sebagian besar masalah terkait tmux mouse Anda.

Ini kompatibel dengan Tmux 2.1+ dan yang baru set-option -g mouse on pendekatan.


4
2017-12-07 16:34



Terima kasih, ini adalah solusi terbaik untuk saya. Ini mencakup semua binding roda mouse saya yang telah saya tambahkan secara manual (jadi saya tidak membutuhkannya lagi), dan ada dua fitur pembunuh yang sangat saya inginkan: scroll-without-changing-pane dalam kombinasi dengan scroll-without-changing-pane dan emulate-scroll-for-no-mouse-alternate-buffer. Sekarang pengalaman penggunaan tmux saya jauh, jauh lebih baik. - selurvedu


Satu-satunya hal yang berhasil bagi saya adalah memasukkan yang berikut ini ~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(Anda mungkin perlu reboot agar ini berlaku)

Memperbarui:

Saya menemukan bahwa jika Anda mengubah pengaturan di Putty Connection> Data> Terminal-type ke "dempul" (digunakan untuk memperbaiki beberapa masalah format) dari "xterm" maka solusi ini berhenti berfungsi.

Perbarui 2:

Gunakan ini jika Anda ingin "dempul" sebagai tipe terminal Anda: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"


4
2017-10-28 10:59



Yang satu ini sebenarnya memecahkan masalah gulir saya di aplikasi iPhone juga. - NathaneilCapital
Yang terakhir saya coba ini tidak berfungsi lagi, tetapi ini berhasil. Aneh. set -ga terminal-overrides ',xterm*:smcup@:rmcup@' - phocks


Ini berhasil untuk saya:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

1
2018-01-04 20:22