Bagaimana cara mematikan batas waktu antara kunci awalan dan kunci perintah di tmux?

45

Saya ~/.tmux.conf:

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

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(untuk membuat kunci perintah sama dengan GNOME Teminator)

Situasi: setelah jendela pemisahan horizontal menjadi 2 panel, beralih ke panel dengan tanda panah Ctrl+ a Up, saya harus menunggu beberapa saat (2-3 detik) untuk melihat perintah histori shell di panel ini. Karena jika saya menekan Uplagi itu akan beralih kembali ke panel lain daripada menunjukkan saya perintah sejarah shell. Bagaimana saya bisa menolak ini?

kuanta
sumber
Alternatif yang berpotensi bermanfaat adalah menggunakan CTRL + B q, ini menunjukkan nomor jendela dalam tmux. Menekan CTRL + B q <nomor> akan membawa Anda ke jendela itu, atas / bawah akan segera tersedia. Anda harus mengetikkan angka berikut q dengan cukup cepat. Ada batas waktu mengendalikan ini juga.
Spacen Jasset

Jawaban:

53

Atas, Bawah, Kiri, dan Kanan ( select-panebinding; dan Control- dan Meta- dari kunci yang sama untuk resize-pane) adalah binding "berulang" secara default (dibuat via bind-key -r). Setelah mengetikkan kunci awalan dan kunci tunggal yang dapat diulang, Anda dapat mengetikkan kunci yang dapat diulang lainnya (tanpa harus mengetikkan awalan lagi) dalam jumlah milidetik yang ditentukan melalui repeat-timeopsi sesi (defaultnya adalah 500 ms).

Anda dapat memeriksa nilai saat repeat-timeini dengan perintah shell ini:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

Jika Anda ingin menonaktifkan pengulangan untuk sesi saat ini, ketikkan awalan, titik dua, dan masukkan perintah ini:

set-option repeat-time 0

Atau, Anda mungkin dapat menemukan nilai bukan nol yang nyaman. Jika Anda benar-benar memiliki nilai sekitar 2000 (yaitu 2s), maka saya kira itu sedang diatur /etc/tmux.conf.

Jika Anda ingin menonaktifkan pengulangan (atau mengubah batas waktu) untuk semua sesi Anda, maka atur nilai global dengan perintah ini:

set-option -g repeat-time 0

Jika Anda telah menetapkan nilai per sesi, Anda harus menghapusnya sebelum nilai global akan berlaku di sesi itu ( set-option -u repeat-time). Anda mungkin ingin mengatur nilai global melalui Anda .tmux.confjika Anda lebih suka membiarkannya "permanen".

Jika Anda hanya memiliki masalah dengan Naik, Anda dapat memutarnya kembali tanpa -r:

bind-key Up select-pane -U
Chris Johnsen
sumber
4

Anda juga dapat mematikan pengulangan untuk ikatan kunci tertentu, jika diinginkan. Misalnya, binding default untuk beralih di antara panel mendidih ke:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

Anda dapat membuatnya kembali tanpa -rbendera, seperti

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

Secara pribadi, saya lebih suka panel-switching tidak dapat diulang. Ulangi bagus jika Anda memiliki jendela yang terbagi menjadi banyak panel kecil, tetapi itu dapat menyebabkan tabrakan kunci (seperti yang Anda jelaskan) dengan aplikasi yang berjalan di dalam panel tersebut (seperti riwayat shell, vim, dll.), Dan saya biasanya tidak memiliki lebih dari 2 panel per jendela. Tetapi untuk masing-masing miliknya.

ivan
sumber