Gunakan scrollbar terminal dengan tmux

41

Saya tahu cara menggulir di tmux menggunakan keyboard, tetapi saya perhatikan bahwa sepertinya ada cara untuk menggunakan terminal scrollbar dengan Layar GNU . Bisakah ini dilakukan dengan tmux?

Jeff
sumber
6
Anda tidak dapat benar-benar menggunakan scrollbar terminal dengan Layar GNU. Bilah gulir tidak akan benar-benar mengakses buffer gulir mundur Layar, tetapi terminal, yang berarti bahwa garis yang digulir dari sesi Layar berbeda tercampur aduk.
ak2
@ ak2 Kesedihan ... tapi terima kasih atas informasinya!
Jeff
2
iTerm2 memiliki beberapa rencana ke depan untuk [mengintegrasikan dengan tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). Integrasi semacam itu tampaknya termasuk menggunakan bilah gulir asli untuk melihatbuffer tmux history.
Chris Johnsen

Jawaban:

42

Ini dimungkinkan di layar GNU dan di tmux dan solusinya mirip: untuk membodohi multiplexer dengan berpikir bahwa terminal tidak memiliki mode "layar alternatif" (seperti yang digunakan oleh pico, mutt, dll). Ini dilakukan dengan mengatur perintah termcap untuk sesi tersebut.

Untuk layar GNU, letakkan ini di .screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

dan untuk tmux, tambahkan ini ke .tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

Bagian ' xterm*' dari perintah harus diatur ke apa pun terminal-emulator Anda dinyatakan sebagai. Beberapa bentuk xterm adalah tebakan yang baik, tetapi Anda dapat memeriksa milik Anda pada kebanyakan sistem * nix yang waras dengan:

echo $TERM

dan ini biasanya dapat diatur dalam preferensi program terminal Anda (yaitu: Untuk Apple Terminal.app, ada di Settings-> Profile-> Advanced (atau Settings-> Advanced-> Emulation pre-yosemite) "Deklarasikan terminal sebagai".

Hasil akhirnya adalah bahwa overflow berakhir di buffer scrollback terminal bukannya menghilang. Tentu saja, karena ini adalah satu buffer statis, semuanya akan menjadi berantakan ketika Anda beralih di antara layar atau jendela tmux, tetapi ini berguna untuk dengan cepat menjentikkan ke atas untuk melihat output dari lsperintah atau semacamnya.

Doug J
sumber
2
juga, lihat saja superuser.com/questions/253414/… , yang berfungsi seperti yang dijelaskan sebagai alternatif lain.
Doug J
2
Solusi: gist.github.com/1297707
Nick
1
@Nick - Perhatikan bahwa Anda sedang memecahkan masalah yang berbeda: menambahkan dukungan mouse ke tmux. Mungkin menjadi solusi yang lebih baik untuk Anda, tetapi berbeda dengan menggunakan buffer scrollback asli. Selama emulator terminal Anda didefinisikan dengan benar, hal di atas akan bekerja pada y * nix, termasuk OSX
Doug J
1
Sepertinya itu adalah tcsh bawaan. Pada bash Anda dapat menggunakanecho $TERM
Doug J
1
"overflow" ini berfungsi tetapi menampilkan beberapa karakter unicode aneh saat keluar dari tmux: stackoverflow.com/q/31790939/2668831
Louis Maddox
5

Untuk mengaktifkan pengguliran, Anda dapat mengaktifkan mode mouse bawaan di ~/.tmux.confsebagai berikut:

set -g mode-mouse on
Shubham Chaudhary
sumber