최근에 bash 단축키를 검토하고 tmux 활성화 키에 적합한 키를 찾으려고했습니다.
나는 것을 흥미 ctrl + m
와 ctrl + q
에 따라, bash는 바로 가기에서 사용되지 않는다 ) https://en.wikipedia.org/wiki/Bash_(Unix_shell .
왜 사용되지 않습니까? ctrl + m
꽤 편리 하다고 생각 합니다.
이 두 조합은 DIY (define it yourself)
사용을 위해 설계된 것 입니까? 아니면 다른 이야기가 있습니까?
Ctrl + M은 터미널의 Enter 키와 동일한 문자 (RET)를 보냅니다. 프로그램은 구분할 방법이 없으므로 이러한 키는 별도로 구성 할 수 없습니다.
Ctrl + Q는 기본적으로 XON 에 이미 사용 되어 있으므로 Bash에서 사용할 수 없지만 tmux는 원시 입력 모드를 사용하므로 tmux에서 계속 사용할 수 있습니다.
GUI 프로그램은 키보드에서 읽을 수 있습니다. 키 m은 수정 자 Ctrl과 함께 눌려졌고 바로 가기로 Ctrl + m을 사용합니다. 그러나 쉘 또는 모든 터미널 프로그램은 0에서 26까지의 ASCII 문자처럼 Ctrl + 키 조합을받습니다.
Ctrl+@ = 0
Ctrl+A = 1
Ctrl+B = 2
등등. 이것을 시도하여 값을 볼 수 있습니다.
cat ctrlkeys <<EOF
^A^B^C^D^E^F
EOF
od -c ctrlkeys
0000000 001 002 003 004 005 006 \n
값을 입력하려면 Ctrl + [af] 전에 Ctrl + v를 눌러 원시 값으로 해석되지 않도록합니다.
ascii (7) 테이블을 보면 왼쪽에 해당 문자 @ .. Z가있는 테이블에서 제어 코드를 볼 수 있습니다. 예를 들면
015 13 0D CR '\r' (carriage ret) 115 77 4D M
또는
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
bash 전에 제어 코드를 해석하는 다음 레이어는 stty입니다 (터미널 설정 변경 및 인쇄).
stty -a
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
lnext
또는 start
및 의 의미는 stty (1)을 참조하십시오 stop
.
또한 readline (3)을 참조하십시오. bash 및 기타 GNU cli 프로그램은 해당 라이브러리를 사용하여 입력 행을 제어하고 bash (1) / READLINE, bash 매뉴얼 페이지의 readline 섹션을 참조하십시오.
참고 : XYZ (NUM)는 섹션 NUM의 XYZ 매뉴얼 페이지를 의미하므로 man NUM XYZ
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다