![애플리케이션 간에 Alt+Tab을 누르면 이상한 문자가 SSH 터미널로 전송됩니다.](https://linux55.com/image/13418/%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%20%EA%B0%84%EC%97%90%20Alt%2BTab%EC%9D%84%20%EB%88%84%EB%A5%B4%EB%A9%B4%20%EC%9D%B4%EC%83%81%ED%95%9C%20%EB%AC%B8%EC%9E%90%EA%B0%80%20SSH%20%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C%20%EC%A0%84%EC%86%A1%EB%90%A9%EB%8B%88%EB%8B%A4..png)
나SSH내 AWS EC2 머신에아마존리눅스현지에서우분투그리고그놈 터미널. 열려 있으면윔내부에SSH세션을 수행한 다음 Alt+ Tab터미널에서 다른 응용 프로그램으로 이동한 다음 Alt+ Tab뒤로 이동하면 성가신 메시지가 나타납니다. E349: No identifier under cursor
또는 Press ENTER or type command to continue
. 몇 가지 조사 끝에 이유를 찾았습니다. 이상한 문자가 다음으로 전송되었습니다.SSH 터미널Alt+Tab을 누를 때:
[ec2-user@ip-172-31-43-121 ~]$ cat
^[[O^[[I^[[O^[[I^[[O^[[I^[[O^[[I^[[O^[[I
^[[O^[[I
Alt+ 주문당 Tab. 이 문자는 무엇을 의미하나요? 전송되는 이유와 이를 방지하는 방법은 무엇입니까?
편집: 그놈 터미널을 다시 시작하여 수정되었습니다.
답변1
이것은 xterm을 보내는 터미널입니다초점이 맞음/초점이 맞지 않음탈출하다. vim은 커서가 창을 떠날 때(alt-tab을 사용할 때) 알 수 있는 모드로 터미널을 설정합니다.
당신은 할 수 있습니다예방하다이는 vim에서 마우스를 처리하는 데 사용되는 모드를 변경하여 수행됩니다. xterm에 대한 문서를 확인하면 vim은 인수와 함께 특정 이스케이프 시퀀스를 보내야 하지만 1004
(xterm에 이러한 이스케이프를 보내도록 지시하기 위해) vim에서는 이를 볼 수 없습니다.소스 코드. 일부 다른 터미널에서는 마우스 이동 모드의 부작용으로 이 작업을 수행할 수 있습니다 1003
(vim에서 이를 보냅니다).
if (xterm_mouse_vers > 0) { if (on) // 마우스 이벤트를 활성화하고, 가능한 경우 마우스 추적을 사용합니다. out_str_nf((char_u *) (xterm_mouse_vers > 1 ? ( #ifdef FEAT_BEVAL_TERM bevalterm_ison ? IF_EB("\033[?1003h", ESC_STR) "[?1003h") : #endif IF_EB("\033[?1002h", ESC_STR "[?1002h")) : IF_EB("\033[?1000h", ESC_STR "[?1000h"))); else // 마우스 이벤트를 비활성화하고 항상 동일한 이벤트를 보낼 수 있습니다. out_str_nf((char_u *) (xterm_mouse_vers > 1 ? IF_EB("\033[?1002l", ESC_STR "[?1002l") : IF_EB("\033[?1000l ") ", ESC_STR "[?1000l"))); mouse_ison = 켜짐; }
vim의 예상 동작을 이해하려면 사용 중인 터미널의 사용자 설명서를 참조해야 합니다.