📄 edit_key_translator.c
字号:
command = CK_Debug_Enter_Command; goto fin; } } if ((x_state & MyAltMask) && (x_state & ShiftMask)) { switch ((int) x_key) { case XK_Up: case XK_KP_Up: command = CK_Scroll_Up_Highlight; goto fin; case XK_Down: case XK_KP_Down: command = CK_Scroll_Down_Highlight; goto fin; } } if (!(x_state & MyAltMask)) { if ((x_key == XK_a || x_key == XK_A) && (x_state & ControlMask)) { command = CKeySymMod (CRawkeyQuery (0, 0, 0, " Execute Macro ", " Press macro hotkey: ")); if (!command) command = -1; else command = CK_Macro (command); goto fin; } if (x_key == XK_Num_Lock && option_interpret_numlock) { num_lock = 1 - num_lock; goto fin; } switch ((int) x_key) { case XK_KP_Home: x_key = XK_Home; break; case XK_KP_End: x_key = XK_End; break; case XK_KP_Page_Up: x_key = XK_Page_Up; break; case XK_KP_Page_Down: x_key = XK_Page_Down; break; case XK_KP_Up: x_key = XK_Up; break; case XK_KP_Down: x_key = XK_Down; break; case XK_KP_Left: x_key = XK_Left; break; case XK_KP_Right: x_key = XK_Right; break; case XK_KP_Insert: x_key = XK_Insert; break; case XK_KP_Delete: x_key = XK_Delete; break; case XK_KP_Enter: x_key = XK_Return; break; case XK_KP_Add: x_key = XK_plus; break; case XK_KP_Subtract: x_key = XK_minus; break; }/* first translate the key-pad */ if (num_lock) { if (x_key >= XK_R1 && x_key <= XK_R9) { x_key = key_pad_map[x_key - XK_R1 + 1]; } else if (x_key >= XK_KP_0 && x_key <= XK_KP_9) { x_key = key_pad_map[x_key - XK_KP_0]; } else if (x_key == XK_KP_Decimal) { x_key = XK_Delete; } } else { if (x_key >= XK_KP_0 && x_key <= XK_KP_9) { x_key += XK_0 - XK_KP_0; } if (x_key == XK_KP_Decimal) { x_key = XK_period; } } if ((x_state & ShiftMask) && (x_state & ControlMask)) { switch ((int) x_key) { case XK_Page_Up: command = CK_Beginning_Of_Text_Highlight; goto fin; case XK_Page_Down: command = CK_End_Of_Text_Highlight; goto fin; case XK_Left: command = CK_Word_Left_Highlight; goto fin; case XK_Right: command = CK_Word_Right_Highlight; goto fin; case XK_Up: command = CK_Paragraph_Up_Highlight; goto fin; case XK_Down: command = CK_Paragraph_Down_Highlight; goto fin; case XK_Home: command = CK_Begin_Page_Highlight; goto fin; case XK_End: command = CK_End_Page_Highlight; goto fin; } } if ((x_state & ShiftMask) && !(x_state & ControlMask)) { switch ((int) x_key) { case XK_Page_Up: command = CK_Page_Up_Highlight; goto fin; case XK_Page_Down: command = CK_Page_Down_Highlight; goto fin; case XK_Left: command = CK_Left_Highlight; goto fin; case XK_Right: command = CK_Right_Highlight; goto fin; case XK_Up: command = CK_Up_Highlight; goto fin; case XK_Down: command = CK_Down_Highlight; goto fin; case XK_Home: command = CK_Home_Highlight; goto fin; case XK_End: command = CK_End_Highlight; goto fin; case XK_Insert: command = CK_XPaste; goto fin; case XK_Delete: command = CK_XCut; goto fin; case XK_Return: command = CK_Return; goto fin;/* this parallel F12, F19, F15, and F17 for some systems */ case XK_F2: command = CK_Save_As; goto fin; case XK_F5: command = CK_Insert_File; goto fin; case XK_F7: command = CK_Find_Again; goto fin; case XK_F6: command = CK_Paragraph_Indent_Mode; goto fin; case XK_F4: command = CK_Replace_Again; goto fin; case XK_F3: command = CK_Run_Another; goto fin; case XK_F1: command = CK_Terminal; goto fin; } }/* things that need a control key */ if (x_state & ControlMask) { switch ((int) x_key) { case XK_F1: command = CK_Man_Page; goto fin; case XK_U: case XK_u: case XK_BackSpace: command = CK_Undo; goto fin; case XK_Page_Up: command = CK_Beginning_Of_Text; goto fin; case XK_Page_Down: command = CK_End_Of_Text; goto fin; case XK_Up: command = CK_Paragraph_Up; goto fin; case XK_Down: command = CK_Paragraph_Down; goto fin; case XK_Left: command = CK_Word_Left; goto fin; case XK_Right: command = CK_Word_Right; goto fin; case XK_Home: command = CK_Begin_Page; goto fin; case XK_End: command = CK_End_Page; goto fin; case XK_N: case XK_n: command = CK_New; goto fin; case XK_O: case XK_o: command = CK_Load; goto fin; case XK_D: case XK_d: command = CK_Date; goto fin; case XK_S: case XK_s: command = CK_Save; goto fin; case XK_Q: case XK_q: raw = 1; decimal = 0; hex = 0; goto fin; case XK_F: case XK_f: command = CK_Save_Block; goto fin; case XK_F5: case XK_F15: command = CK_Insert_File; goto fin; case XK_Insert: command = CK_XStore; goto fin; case XK_y: case XK_Y: command = CK_Delete_Line; goto fin; case XK_Delete: command = CK_Remove; goto fin; case XK_F2: command = CK_Save_Desktop; goto fin; case XK_F3: command = CK_New_Window; goto fin; case XK_F6: command = CK_Cycle; goto fin; case XK_F10: command = CK_Check_Save_And_Quit; goto fin; case XK_Tab: case XK_KP_Tab: command = CK_Complete; goto fin; case XK_b: case XK_B: command = CK_Column_Mark; goto fin; case XK_l: case XK_L: command = CK_Refresh; goto fin; case XK_c: case XK_C: command = CK_Debug_Stop; goto fin; } }/* an ordinary ascii character or international character */ if (!(x_state & MyAltMask)) { if (!(x_state & ControlMask)) { if (x_key < 256) if (isprint (x_key) || (x_key >= 0x020 && x_key <= 0x0ff)) { char_for_insertion = x_key; goto fin; }/* other commands */ if (!(x_state & ShiftMask) || (x_key >= XK_F11 && x_key <= XK_F20)) { i = 0; while (key_map[i] != x_key && key_map[i]) i += 2; command = key_map[i + 1]; if (command) goto fin; } } } } else if (x_state & ControlMask) { switch ((int) x_key) { case XK_f: case XK_F: command = CK_Find_File; goto fin; case XK_i: case XK_K: command = CK_Ctags; goto fin; case XK_Insert: case XK_KP_0: command = CK_Toggle_Bookmark; goto fin; case XK_Down: case XK_KP_2: command = CK_Next_Bookmark; goto fin; case XK_Up: case XK_KP_8: command = CK_Prev_Bookmark; goto fin; } } fin: *cmd = command; *ch = char_for_insertion; if ((command == -1 || command == 0) && char_for_insertion == -1) /* unchanged, key has no function here */ return 0; return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -