루비 프로그램에서 Control-Left, Shift-F10 등을 잡으려고합니다. 일반적으로 getch를 사용하면 27,91,50,50,126과 같은 int리스트를 얻을 수 있습니다. 그러나 나는 이것들이 시스템이나 터미널에 의존 할 수도 있다는 것을 두려워한다. 인터넷 검색 후 use_extended_names, tigetstr 등등에 대해 발견했습니다. 런타임시 키 코드를 발견하는 C 프로그램을 발견했습니다 (Thomas Dickey). 나는 그것을 실행하고 확장 된 키를 발견 한 것 같다.하지만 같은 프로그램의 getch는 여전히 C-left와 같은 int의 일반적인 목록을 제공한다. 나는 하나의 반환 값을 얻을 것으로 기대한다.확장 키 트래핑 ncurses
내가 무엇이 누락 되었습니까?
keypress=27
keypress=91
keypress=53
keypress=68
key=kLFT5, code=540
key=kEND5, code=525
key=kHOM5, code=530
key=kHOM3, code=528
key=kUP5, code=561
key=kDN5, code=520
난 그냥 540를 얻을 안 : 여기
내가 컨트롤 왼쪽을 누르면 출력입니까? TERM = 화면에서 실행되는 경우 https://gist.github.com/1237091 이상하게는 모든 코드 0을 표시 : 여기
는 keytest.c이다. 위의 내용은 TERM = xterm입니다. (터미널을 사용하는 OSX를 사용 중입니다.)
샘플 프로그램을 실행할 때 3 행이 인쇄됩니다. tigetstr for ... 해당 행이 표시되지 않으면 터미널 설명에 문제점이 있습니다. 어떤 OS와 터미널을 실행하고 있습니까? – Craig