Konsekuensi dari pengaturan tmux 'escape-time 0'?

16

Saya menemukan bahwa ketika menjalankan (neo) vim di dalam tmux, escape-key tertunda. Ini diperbaiki dengan meletakkan

set -sg escape-time 0

di saya .tmux.conf. Agaknya, ini menonaktifkan kemungkinan menggunakan ESC sebagai kunci "meta". Dengan asumsi bahwa saya selalu bekerja dengan keyboard yang memiliki kunci Alt untuk bertindak sebagai "meta", saya bertanya-tanya apa konsekuensi yang mungkin tidak diinginkan yang mungkin memerlukan pengaturan.

Michael Goerz
sumber

Jawaban:

16

Pengaturan escape-timeke nol mengganggu tmux mengenali tombol-fungsi. Its halaman pengguna mengatakan

escape-time time
Atur waktu dalam milidetik dimana tmux menunggu setelah escape adalah input untuk menentukan apakah itu merupakan bagian dari suatu fungsi atau urutan meta key. Standarnya adalah 500 milidetik.

Istilah "tombol fungsi" berlaku untuk apa pun yang memiliki format itu (termasuk pageup, digunakan dalam pengguliran oleh tmux, dan tombol kursor). 500 milidetik mungkin berlebihan jika Anda tidak pernah bekerja dari jarak jauh. 20 milidetik bisa digunakan untuk koneksi lokal. Analog ESCDELAYdalam ncurses default ke 1000 milidetik; hanya sebagian kecil pengguna yang merasa perlu mengubahnya.

Thomas Dickey
sumber
hmm ... tombol panah dan pageup tampaknya berfungsi dengan baik di tmux, bahkan dengan escape-time yang ditetapkan ke 0
Michael Goerz
1
Dokumentasi mengacu pada binding utama yang ditangani oleh tmux (bukan aplikasi yang berjalan di dalam tmux).
Thomas Dickey
@AntoineCotten Bisakah Anda mengembangkannya? Saya berpikir bahwa Metatidak mengirim apa pun hingga dipasangkan dengan kunci non-fungsi, pada titik mana ia akan mengirim pelarian dan kunci pada "waktu yang sama" (lebih sedikit penundaan daripada periode pemungutan suara yang masuk akal, dengan asumsi ia melakukan pemungutan suara alih-alih menggunakan interupsi atau sesuatu.) Saya mengikuti naluri saya dan tidak pernah mengatur waktu escape di bawah 10, terutama karena saya perkirakan hal itu akan menyebabkan masalah jika standarnya sangat tinggi.
John P
Perilaku Meta tergantung pada terminal. tmuxtidak memiliki kendali atas hal itu, tetapi tidak tahu tentang kunci khusus xterm (dalam tabel). Meta untuk kunci biasa di xterm melakukan sesuatu (lihat eightBitInputdi manual). Untuk terminal lain, terminal dapat melakukan sesuatu, tetapi biasanya tidak berdokumen.
Thomas Dickey
@JohnP @ThomasDickey Saya sebelumnya berkomentar bahwa pengaturan escape-timeke 0 mengganggu perintah Meta di terminal emulator saya. Saya ingin melakukan koreksi, ini hanya benar karena terminal macOS digunakan Escsebagai kunci Meta . Tidak ada masalah saat menggunakan kunci berbeda seperti Alt . Permintaan maaf atas komentar yang menyesatkan (dihapus).
Antoine Cotten