내 .screenrc에는 다음 섹션이 있습니다.
# Change command key to ctrl+space
escape ^@a
찾을 수 없는 포럼에서 이 마법 주문을 찾았습니다. Ctrl+Space를 눌러 화면 명령을 호출하면 새 창이 생성되거나 ctrl+space c
마지막 창으로 전환됩니다 . 등.ctrl+space ctrl+c
ctrl+space space
ctrl+space ctrl+space
이는 줄 시작 부분에서 터미널 기능을 제외하고 ctrl+a
, 입력하기 쉽고, 표준 키 바인딩과 충돌하지 않는 문제를 피하는 데 유용합니다.
왜 그리고 어떻게 작동하는지 설명할 수 있는 사람이 있나요? 나는 검색했다https://www.gnu.org/software/screen/manual/screen.html이 캐릭터에 대한 참조를 @
찾을 수 없습니다.
답변1
많은 터미널 프로그램(모든 프로그램은 아님)의 경우 control-SPACE는 ASCII 00 문자(NUL)를 보냅니다.
예를 들어 od -cx
control-SPACE, RETURN, control_D를 입력하면 다음과 유사한 출력이 표시됩니다.
% od -cx
^@
0000000 \0 \n
0a00
0000002
Control-@도 NUL 문자입니다(@는 ASCII 64이므로 control-@는 ASCII 00입니다).
따라서 화면 내에서 control-@를 매핑하면 터미널이 control-SPACE를 처리하는 방식 때문에 control-SPACE...를 매핑하는 효과가 있습니다.