Konsekwencje ustawienia tmux „czas ucieczki 0”?


16

Uważam, że po uruchomieniu (neo) vima w środku tmuxklawisz Esc jest opóźniony. Jest to naprawione przez umieszczenie

set -sg escape-time 0

w moim .tmux.conf. Prawdopodobnie wyłącza to możliwość używania ESC jako klucza „meta”. Zakładając, że zawsze pracuję z klawiaturami, które mają klawisz Alt, który działa jak „meta”, zastanawiam się, jakie potencjalnie niepożądane konsekwencje może wynikać z tego ustawienia.

Odpowiedzi:


16

Ustawienie escape-timena zero zakłóca działanie klawiszy funkcyjnych rozpoznających tmux. Jego strona podręcznika mówi

escape-time time
Ustaw czas w milisekundach, przez który tmux czeka po wprowadzeniu znaku ucieczki, aby określić, czy jest on częścią funkcji, czy sekwencją klawiszy meta. Wartość domyślna to 500 milisekund.

Termin „klawisz funkcyjny” odnosi się do wszystkiego, co ma ten format (w tym pageup, używany do przewijania przez tmux i klawisze kursora). 500 milisekund może być nadmierne, jeśli nigdy nie pracujesz zdalnie. 20 milisekund jest możliwe w przypadku połączeń lokalnych. Analogicznie ESCDELAYw ncurses domyślnie jest ustawiona na 1000 milisekund; tylko bardzo niewielka część użytkowników uważa, że ​​należy to zmienić.


hmm ... klawisze strzałek i pageup wydają się działać dobrze w tmux, nawet przy czasie ucieczki ustawionym na 0
Michael Goerz

1
Dokumentacja dotyczy powiązań klawiszy obsługiwanych przez tmux (nie aplikacji działających w tmux).
Thomas Dickey,

@AntoineCotten Czy możesz to rozwinąć? Myślałem, że Metanic nie wysłało, dopóki nie zostało sparowane z klawiszem niefunkcyjnym, w którym to momencie wysłałoby klawisz ucieczki i klucz „w tym samym czasie” (mniej opóźnienia niż jakikolwiek rozsądny okres odpytywania, przy założeniu, że odpytuje zamiast używać przerwań lub coś.) Śledziłem jelito i nigdy nie ustawiałem limitu czasu ucieczki poniżej 10, głównie dlatego, że spodziewałem się, że spowoduje to problemy, jeśli wartość domyślna będzie tak wysoka.
John P

Zachowanie Meta zależy od terminala. tmuxnie ma nad tym żadnej kontroli, ale wie o specjalnych klawiszach xterm (w tabeli). Meta dla zwykłego klucza w xterm coś robi (poszukaj eightBitInputw instrukcji). W przypadku innych terminali może coś zrobić, ale zwykle nie jest to udokumentowane.
Thomas Dickey

@JohnP @ThomasDickey Wcześniej skomentowałem, że ustawienia escape-timena 0 zakłócały polecenia Meta w emulatorze terminali. Chciałbym dokonać korekty, było to prawdą tylko dlatego, że terminal macOS używa Escjako klawisza Meta . Nie ma problemu przy użyciu innego klucza, takiego jak Alt . Przepraszamy za wprowadzający w błąd (usunięty) komentarz.
Antoine Cotten,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.