ESC 키는 Alt+ 동작으로 인해 터미널에서 약간의 지연을 발생시킵니다.

ESC 키는 Alt+ 동작으로 인해 터미널에서 약간의 지연을 발생시킵니다.

내 터미널 설정은 gnome-terminal + tmux + zsh 및 vi 바인딩입니다.

vim과 같은 애플리케이션이나 심지어 zsh의 명령줄 vi 편집 모드에서도 이 키를 자주 눌러야 ESC하지만 키가 적용되기 전에 약간의 지연이 있습니다. 바라보다GNU 화면으로 인해 Vim ESC 키가 느려집니다.

ESC몇 번의 실험 끝에 키를 누른 후 즉시 다른 키(예: b)를 누르면 을 누르는 것과 동일한 효과가 있다는 것을 발견했습니다 Alt+b. 왜 이런 일이 발생하는지 모르겠습니다(존재하지 않는 기존 이유일 수도 있습니다 Alt. 모르겠습니다). 어쨌든, 나는 두 개의 키를 가지고 있고 내 키가 이렇게 작동하는 것을 Alt원하지 않습니다 . ESC나는 이것을 시도했지만 C+[같은 문제가 있습니다.

gnome-terminal이나 tmux 또는 내 OS 자체(Ubuntu Natty)에 대한 책임이 누구에게 있는지 잘 모르겠습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있으면 좋을 것입니다.

고쳐 쓰다:다른 터미널(LXTerminal)에서 tmux 없이 확인했는데 거기에서도 지연이 발생했습니다.

답변1

이는 실제 수정 사항입니다. 다음을 추가하십시오 .tmux.conf.

set -s escape-time 0

설명에서 언급했듯이 서버를 다시 시작해야 할 수도 있습니다.  tmux kill-server서버를 종료합니다. 다시 시작해야 할 수도 있습니다. 또는 tmux 접두사(기본값 + ) tmux를 입력하여 명령 프롬프트에서 구성 파일을 다시 로드 할 수 있습니다.CtrlB: 을 입력하고 source-file ~/.tmux.conf.

답변2

지연은 기능 키를 누를지 여부를 결정해야 하는 입력 루틴으로 인해 발생합니다. 이를 위해 입력 루틴은 ESC 문자를 읽을 때마다 타이머를 시작합니다. 그런 다음 타이머가 만료되기 전에(1/10초라고 가정) 입력에서 읽은 문자는 기능 키의 ESC 시퀀스로 해석되고 해당 ESC 시퀀스는 terminfo 또는 terminfo의 알려진 ESC 시퀀스와 비교됩니다. . termcap 데이터베이스(사용된 저수준 루틴에 따라 다름)

물론 이는 ESC만 사용하는 애플리케이션에서는 성가신 일이지만 해결 방법은 모르겠습니다.

ESC a= 행동에 관한 귀하의 질문에 관해서 Meta a:

모든 키보드가 메타 키를 제공하는 것은 아닙니다. 해결 방법으로 일반적으로 다른 키를 누르기 전에 ESC 키를 사용하는 것이 허용됩니다.

답변3

이것이 문제를 직접적으로 해결하지는 못하지만 이를 사용하여 <Ctrl> c삽입 모드를 종료할 수 있다는 것을 알았습니다. 이는 tmux의 화면 스크롤을 종료하는 데에도 사용할 수 있습니다(call을 사용하여 수행할 수 있음 <leader> PgUP).

관련 정보