作者ric2k1 (Ric)
看板EE_DSnP
标题[情报] Keyboard mapping
时间Fri Mar 27 21:36:00 2009
[注意: 无论你怎麽改, 千万不要改到 "#ifdef TA_KB_SETTING" 的部份!!]
有好几个人问我相同的问题, 所以我在这边一起回答一下:
就是他们的 keyboard mapping 大部分跟 reference code 一样,
除了:
Home 是: 27 79 72 (原先: 27 91 49 126)
End 是: 27 79 70 (原先: 27 91 52 126)
既然大不分都跟 default 的 code 一样,
我建议就将 #ifdef TA_KB_SETTING 的部份直接 copy 下来,
然後贴到 #else 的部分去直接取代, 然後再改.
1. 由於你的 Home/End 的第二个 code 跟其他特殊键不同,
你首先必须在 "enum ParseChar" (charDef.h) 中宣告新的 mod key:
HOME_KEY_COMBO = 79,
2. Home/End 的 distinguishing keys 与原先不同, 所以将原先的 comment out 掉,
加入:
HOME_KEY = 72 + HOME_KEY_SHIFT,
END_KEY = 70 + HOME_KEY_SHIFT,
其中 HOME_KEY_SHIFT 可定义为:
HOME_KEY_SHIFT = 1 << 10,
3. 然後在 charDef.cpp 中加入:
case ESC_KEY: {
char combo = myGetChar(istr);
if (combo == char(MOD_KEY_COMBO)) {
.... (不用改)
}
else if (combo == char(HOME_KEY_COMBO)) { // 加这里
char kk = myGetChar(istr);
if (kk == char(HOME_KEY) || kk == char(END_KEY))
return (int(kk) + HOME_KEY_SHIFT);
else // should not happen
assert(0);
}
4. 将 Makefile 中的 -DTA_KB_SETTING 那行 comment out 掉!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.45.43
1F:推 sa901119:步骤一的 (cmdParser.h) 应为 CharDef.h 哦 03/27 21:43
※ 编辑: ric2k1 来自: 61.224.45.43 (03/27 21:55)
2F:→ ric2k1:哦, 看错 homework.... 03/27 21:55
3F:推 sobluesk:4.是comment out掉再重新写上CFLAGS=-g -Wall吗? 03/28 01:03
4F:推 sa901119:在被comment out掉的那行前面好像就有CFLAGS=-g -Wall了 03/28 07:57