static KeyBinding Bindings[] = {
/* Cursor Movements */
- { ModAny, KEY_HOME, cursor_home },
- { ModAny, KEY_END, cursor_end },
- { ModAny, KEY_UP, cursor_up },
- { ModAny, KEY_DOWN, cursor_dn },
- { ModAny, KEY_LEFT, cursor_left },
- { ModAny, KEY_RIGHT, cursor_right },
+ { .mods = ModAny, .key = KEY_HOME, .fn = cursor_home },
+ { .mods = ModAny, .key = KEY_END, .fn = cursor_end },
+ { .mods = ModAny, .key = KEY_UP, .fn = cursor_up },
+ { .mods = ModAny, .key = KEY_DOWN, .fn = cursor_dn },
+ { .mods = ModAny, .key = KEY_LEFT, .fn = cursor_left },
+ { .mods = ModAny, .key = KEY_RIGHT, .fn = cursor_right },
/* Standard Unix Shortcuts */
- { ModCtrl, 'u', del_to_bol },
- { ModCtrl, 'k', del_to_eol },
- { ModCtrl, 'w', del_to_bow },
- { ModCtrl, 'a', cursor_bol },
- { ModCtrl, 'e', cursor_eol },
+ { .mods = ModCtrl, .key = 'u', .fn = del_to_bol },
+ { .mods = ModCtrl, .key = 'k', .fn = del_to_eol },
+ { .mods = ModCtrl, .key = 'w', .fn = del_to_bow },
+ { .mods = ModCtrl, .key = 'a', .fn = cursor_bol },
+ { .mods = ModCtrl, .key = 'e', .fn = cursor_eol },
/* Standard Text Editing Shortcuts */
- { ModCtrl, 's', put },
- { ModCtrl, 'z', undo },
- { ModCtrl, 'y', redo },
- { ModCtrl, 'x', cut },
- { ModCtrl, 'c', copy },
- { ModCtrl, 'v', paste },
- { ModCtrl, 'j', join_lines },
- { ModCtrl, 'l', select_line },
+ { .mods = ModCtrl, .key = 's', .fn = put },
+ { .mods = ModCtrl, .key = 'z', .fn = undo },
+ { .mods = ModCtrl, .key = 'y', .fn = redo },
+ { .mods = ModCtrl, .key = 'x', .fn = cut },
+ { .mods = ModCtrl, .key = 'c', .fn = copy },
+ { .mods = ModCtrl, .key = 'v', .fn = paste },
+ { .mods = ModCtrl, .key = 'j', .fn = join_lines },
+ { .mods = ModCtrl, .key = 'l', .fn = select_line },
+ { .mods = ModCtrl, .key = '[', .fn = exec, .arg = "|i-" },
+ { .mods = ModCtrl, .key = ']', .fn = exec, .arg = "|i+" },
/* Common Special Keys */
- { ModNone, KEY_PGUP, page_up },
- { ModNone, KEY_PGDN, page_dn },
- { ModAny, KEY_DELETE, delete },
- { ModAny, KEY_BACKSPACE, backspace },
+ { .mods = ModNone, .key = KEY_PGUP, .fn = page_up },
+ { .mods = ModNone, .key = KEY_PGDN, .fn = page_dn },
+ { .mods = ModAny, .key = KEY_DELETE, .fn = delete },
+ { .mods = ModAny, .key = KEY_BACKSPACE, .fn = backspace },
/* Implementation Specific */
- { ModNone, KEY_ESCAPE, select_prev },
- { ModCtrl, 't', change_focus },
- { ModCtrl, 'q', quit },
- { ModCtrl, 'h', highlight },
- { ModOneOrMore, 'f', search },
- { ModCtrl, 'd', execute },
- { ModOneOrMore, 'o', open_file },
- { ModCtrl, 'p', pick_ctag },
- { ModOneOrMore, 'g', goto_ctag },
- { ModCtrl, 'n', new_win },
- { ModOneOrMore, '\n', newline },
- { ModCtrl, ' ', complete },
+ { .mods = ModNone, .key = KEY_ESCAPE, .fn = select_prev },
+ { .mods = ModCtrl, .key = 't', .fn = change_focus },
+ { .mods = ModCtrl, .key = 'q', .fn = quit },
+ { .mods = ModCtrl, .key = 'h', .fn = highlight },
+ { .mods = ModOneOrMore, .key = 'f', .fn = search },
+ { .mods = ModCtrl, .key = 'd', .fn = execute },
+ { .mods = ModOneOrMore, .key = 'o', .fn = open_file },
+ { .mods = ModCtrl, .key = 'p', .fn = pick_ctag },
+ { .mods = ModOneOrMore, .key = 'g', .fn = goto_ctag },
+ { .mods = ModCtrl, .key = 'n', .fn = new_win },
+ { .mods = ModOneOrMore, .key = '\n', .fn = newline },
+ { .mods = ModCtrl, .key = ' ', .fn = complete },
{ 0, 0, 0 }
};