我想在我的紅寶石程序陷阱控制左,Shift-F10等。通常,只使用getch,我會得到一個整數列表,例如27,91,50,50,126。不過,我擔心這些可能是系統或終端依賴。谷歌搜索後,我發現了關於use_extended_names,tigetstr等。我發現一個C程序使用這些在運行時發現鍵碼(托馬斯Dickey)。我運行它,它似乎發現擴展的鍵,但然後getch在同一個程序仍然給我通常的整數列表,例如[27,91,53,68]爲C左我正在得到。我希望得到一個它所提到的價值。ncurses捕獲擴展的鍵(控制左,Shift功能等)
我在想什麼?
這是當我按下Control-左輸出:
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?
這裏是keytest.c:https://gist.github.com/1237091
奇怪的是,所有的代碼下TERM =屏幕上運行時顯示0。以上是TERM = xterm。 (我在使用終端的OSX上)
當我運行你的示例程序時,我得到3行打印:tigetstr ...如果你沒有看到這些行,你的終端描述有問題。你在運行什麼操作系統和終端? – Craig