lib/widget/input_complete.c: minor refactoring and optimization.
[midnight-commander.git] / src / keybind-defaults.c
blob7ad1f55f389f981c1b7c878e9ea1ac30ab1af3d3
1 /*
2 Default values for keybinding engine
4 Copyright (C) 2009, 2010, 2011
5 The Free Software Foundation, Inc.
7 Written by:
8 Vitja Makarov, 2005
9 Ilia Maslakov <il.smind@gmail.com>, 2009, 2010
10 Andrew Borodin <aborodin@vmail.ru>, 2010, 2011
12 This file is part of the Midnight Commander.
14 The Midnight Commander is free software: you can redistribute it
15 and/or modify it under the terms of the GNU General Public License as
16 published by the Free Software Foundation, either version 3 of the License,
17 or (at your option) any later version.
19 The Midnight Commander is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 GNU General Public License for more details.
24 You should have received a copy of the GNU General Public License
25 along with this program. If not, see <http://www.gnu.org/licenses/>.
28 #include <config.h>
30 #include "lib/global.h"
31 #include "lib/widget.h" /* dialog_map, input_map, listbox_map */
33 #include "keybind-defaults.h"
35 /*** global variables ****************************************************************************/
37 GArray *main_keymap = NULL;
38 GArray *main_x_keymap = NULL;
39 GArray *panel_keymap = NULL;
40 GArray *dialog_keymap = NULL;
41 GArray *input_keymap = NULL;
42 GArray *listbox_keymap = NULL;
43 GArray *tree_keymap = NULL;
44 GArray *help_keymap = NULL;
45 #ifdef USE_INTERNAL_EDIT
46 GArray *editor_keymap = NULL;
47 GArray *editor_x_keymap = NULL;
48 #endif
49 GArray *viewer_keymap = NULL;
50 GArray *viewer_hex_keymap = NULL;
51 #ifdef USE_DIFF_VIEW
52 GArray *diff_keymap = NULL;
53 #endif
55 const global_keymap_t *main_map = NULL;
56 const global_keymap_t *main_x_map = NULL;
57 const global_keymap_t *panel_map = NULL;
58 const global_keymap_t *tree_map = NULL;
59 const global_keymap_t *help_map = NULL;
61 #ifdef USE_INTERNAL_EDIT
62 const global_keymap_t *editor_map = NULL;
63 const global_keymap_t *editor_x_map = NULL;
64 #endif
65 const global_keymap_t *viewer_map = NULL;
66 const global_keymap_t *viewer_hex_map = NULL;
67 #ifdef USE_DIFF_VIEW
68 const global_keymap_t *diff_map = NULL;
69 #endif
71 /*** file scope macro definitions ****************************************************************/
73 /*** file scope type declarations ****************************************************************/
75 /* default keymaps in ini (key=value) format */
76 typedef struct global_keymap_ini_t
78 const char *key;
79 const char *value;
80 } global_keymap_ini_t;
82 /*** file scope variables ************************************************************************/
84 /* midnight */
85 static const global_keymap_ini_t default_main_keymap[] = {
86 {"Help", "f1"},
87 {"UserMenu", "f2"},
88 {"View", "f3"},
89 {"Edit", "f4"},
90 {"Copy", "f5"},
91 {"Move", "f6"},
92 {"MakeDir", "f7"},
93 {"Delete", "f8"},
94 {"Menu", "f9"},
95 {"Quit", "f10"},
96 {"MenuLastSelected", "f19"},
97 {"QuitQuiet", "f20"},
98 {"History", "alt-h"},
99 {"DirSize", "ctrl-space"},
100 /* Copy useful information to the command line */
101 {"PutCurrentPath", "alt-a"},
102 {"PutOtherPath", "alt-shift-a"},
103 {"CdQuick", "alt-c"},
104 /* To access the directory hotlist */
105 {"HotList", "ctrl-backspace"},
106 /* Suspend */
107 {"Suspend", "ctrl-z"},
108 /* The filtered view command */
109 {"ViewFiltered", "alt-exclamation"},
110 /* Find file */
111 {"Find", "alt-question"},
112 /* Panel refresh */
113 {"Reread", "ctrl-r"},
114 /* Switch listing between long, user defined and full formats */
115 {"PanelListingSwitch", "alt-t"},
116 /* Swap panels */
117 {"Swap", "ctrl-u"},
118 /* Resize panels */
119 {"SplitEqual", "alt-equal"},
120 {"SplitMore", "alt-shift-right"},
121 {"SplitLess", "alt-shift-left"},
122 /* View output */
123 {"Shell", "ctrl-o"},
124 {"ShowHidden", "alt-dot"},
125 {"SplitVertHoriz", "alt-comma"},
126 {"ExtendedKeyMap", "ctrl-x"},
127 /* Select/unselect group */
128 {"Select", "kpplus"},
129 {"Unselect", "kpminus"},
130 {"SelectInvert", "kpasterisk"},
131 /* List of screens */
132 {"ScreenList", "alt-prime"},
133 {NULL, NULL}
136 static const global_keymap_ini_t default_main_x_keymap[] = {
137 {"CompareDirs", "d"},
138 #ifdef USE_DIFF_VIEW
139 {"CompareFiles", "ctrl-d"},
140 #endif /* USE_DIFF_VIEW */
141 #ifdef ENABLE_VFS
142 {"VfsList", "a"},
143 #endif /* ENABLE_VFS */
144 {"PutCurrentPath", "p"},
145 {"PutOtherPath", "ctrl-p"},
146 {"PutCurrentTagged", "t"},
147 {"PutOtherTagged", "ctrl-t"},
148 {"ChangeMode", "c"},
149 {"ChangeOwn", "o"},
150 {"PutCurrentLink", "r"},
151 {"PutOtherLink", "ctrl-r"},
152 {"Link", "l"},
153 {"LinkSymbolic", "s"},
154 {"LinkSymbolicRelative", "v"},
155 {"LinkSymbolicEdit", "ctrl-s"},
156 {"PanelInfo", "i"},
157 {"PanelQuickView", "q"},
158 {"HotListAdd", "h"},
159 #ifdef ENABLE_BACKGROUND
160 {"Jobs", "j"},
161 #endif /* ENABLE_BACKGROUND */
162 {"ExternalPanelize", "!"},
163 {NULL, NULL}
166 /* panel */
167 static const global_keymap_ini_t default_panel_keymap[] = {
168 {"PanelOtherCd", "alt-o"},
169 {"PanelOtherCdLink", "alt-l"},
170 {"CopySingle", "f15"},
171 {"DeleteSingle", "f18"},
172 {"Enter", "enter"},
173 {"EditNew", "f14"},
174 {"MoveSingle", "f16"},
175 {"SelectInvert", "alt-asterisk"},
176 {"Select", "alt-plus"},
177 {"Unselect", "alt-minus"},
178 {"ViewRaw", "f13"},
179 {"CdChild", "ctrl-pgdn"},
180 {"CdParent", "ctrl-pgup"},
181 {"History", "alt-shift-h"},
182 {"HistoryNext", "alt-u"},
183 {"HistoryPrev", "alt-y"},
184 {"BottomOnScreen", "alt-j"},
185 {"MiddleOnScreen", "alt-r"},
186 {"TopOnScreen", "alt-g"},
187 {"Mark", "insert; ctrl-t"},
188 {"MarkDown", "shift-down"},
189 {"MarkUp", "shift-up"},
190 {"Up", "up; ctrl-p"},
191 {"Down", "down; ctrl-n"},
192 {"Left", "left"},
193 {"Right", "right"},
194 {"Top", "alt-lt; home; a1"},
195 {"Bottom", "alt-gt; end; c1"},
196 {"PageDown", "pgdn; ctrl-v"},
197 {"PageUp", "pgup; alt-v"},
198 #ifdef HAVE_CHARSET
199 {"SelectCodepage", "alt-e"},
200 #endif
201 {"Search", "ctrl-s; alt-s"},
202 {"PanelOtherSync", "alt-i"},
203 {NULL, NULL}
206 /* dialog */
207 static const global_keymap_ini_t default_dialog_keymap[] = {
208 {"Ok", "enter"},
209 {"Cancel", "f10; esc; ctrl-g"},
210 {"Up", "up; left"},
211 {"Down", "down; right"},
212 #if 0
213 {"Left", "up; left"},
214 {"Right", "down; right"},
215 #endif
216 {"Help", "f1"},
217 {"Suspend", "ctrl-z"},
218 {"Refresh", "ctrl-l"},
219 {"ScreenList", "alt-prime"},
220 {"ScreenNext", "alt-rbrace"},
221 {"ScreenPrev", "alt-lbrace"},
222 {NULL, NULL}
225 /* input line */
226 static const global_keymap_ini_t default_input_keymap[] = {
227 /* Motion */
228 {"Home", "ctrl-a; alt-lt; home; a1"},
229 {"End", "ctrl-e; alt-gt; end; c1"},
230 {"Left", "left; alt-left; ctrl-b"},
231 {"Right", "right; alt-right; ctrl-f"},
232 {"WordLeft", "ctrl-left; alt-b"},
233 {"WordRight", "ctrl-right; alt-f"},
234 /* Mark */
235 {"MarkLeft", "shift-left"},
236 {"MarkRight", "shift-right"},
237 {"MarkToWordBegin", "ctrl-shift-left"},
238 {"MarkToWordEnd", "ctrl-shift-right"},
239 {"MarkToHome", "shift-home"},
240 {"MarkToEnd", "shift-end"},
241 /* Editing */
242 {"Backspace", "backspace; ctrl-h"},
243 {"Delete", "delete; ctrl-d"},
244 {"DeleteToWordEnd", "alt-d"},
245 {"DeleteToWordBegin", "alt-backspace"},
246 /* Region manipulation */
247 {"Remove", "ctrl-w"},
248 {"Store", "alt-w"},
249 {"Yank", "ctrl-y"},
250 {"DeleteToEnd", "ctrl-k"},
251 /* History */
252 {"History", "alt-h"},
253 {"HistoryPrev", "alt-p; ctrl-down"},
254 {"HistoryNext", "alt-n; ctrl-up"},
255 /* Completion */
256 {"Complete", "alt-tab"},
257 {NULL, NULL}
260 /* listbox */
261 static const global_keymap_ini_t default_listbox_keymap[] = {
262 {"Up", "up; ctrl-p"},
263 {"Down", "down; ctrl-n"},
264 {"Top", "home; alt-lt; a1"},
265 {"Bottom", "end; alt-gt; c1"},
266 {"PageUp", "pgup; alt-v"},
267 {"PageDown", "pgdn; ctrl-v"},
268 {"Delete", "delete; d"},
269 {"Clear", "shift-delete; shift-d"},
270 {NULL, NULL}
273 /* tree */
274 static const global_keymap_ini_t default_tree_keymap[] = {
275 {"Help = f1"},
276 {"Rescan = f2; ctrl-r"},
277 {"Forget = f3"},
278 {"ToggleNavigation = f4"},
279 {"Copy = f5"},
280 {"Move = f6"},
281 #if 0
282 {"MakeDir", "f7"},
283 #endif
284 {"Delete", "f8; delete"},
285 {"Up", "up; ctrl-p"},
286 {"Down", "down; ctrl-n"},
287 {"Left", "left"},
288 {"Right", "right"},
289 {"Top", "home; alt-lt; a1"},
290 {"Bottom", "end; alt-gt; c1"},
291 {"PageUp", "pgup; alt-v"},
292 {"PageDown", "pgdn; ctrl-v"},
293 {"Enter", "enter"},
294 {"Search", "ctrl-s; alt-s"},
295 {NULL, NULL}
298 /* help */
299 static const global_keymap_ini_t default_help_keymap[] = {
300 {"Help", "f1"},
301 {"Index", "f2; c"},
302 {"Back", "f3; left; l"},
303 {"Quit", "f10; esc"},
304 {"Up", "up; ctrl-p"},
305 {"Down", "down; ctrl-n"},
306 {"PageDown", "f; space; pgdn; ctrl-v"},
307 {"PageUp", "b; pgup; alt-v; backspace"},
308 {"HalfPageDown", "d"},
309 {"HalfPageUp", "u"},
310 {"Top", "home; ctrl-home; ctrl-pgup; a1; alt-lt; g"},
311 {"Bottom", "end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g"},
312 {"Enter", "right; enter"},
313 {"LinkNext", "tab"},
314 {"LinkPrev", "alt-tab"},
315 {"NodeNext", "n"},
316 {"NodePrev", "p"},
317 {NULL, NULL}
320 #ifdef USE_INTERNAL_EDIT
321 static const global_keymap_ini_t default_editor_keymap[] = {
322 {"Enter", "enter"},
323 {"Return", "shift-enter"}, /* useful for pasting multiline text */
324 {"Tab", "tab"},
325 {"BackSpace", "backspace; ctrl-h"},
326 {"Delete", "delete; ctrl-d"},
327 {"Left", "left"},
328 {"Right", "right"},
329 {"Up", "up"},
330 {"Down", "down"},
331 {"Home", "home"},
332 {"End", "end"},
333 {"PageUp", "pgup"},
334 {"PageDown", "pgdn"},
335 {"WordLeft", "ctrl-left; ctrl-z"},
336 {"WordRight", "ctrl-right; ctrl-x"},
337 {"InsertOverwrite", "insert"},
338 {"Help", "f1"},
339 {"Save", "f2"},
340 {"Mark", "f3"},
341 {"Replace", "f4"},
342 {"Copy", "f5"},
343 {"Move", "f6"},
344 {"Search", "f7"},
345 {"Remove", "f8; ctrl-delete"},
346 {"Menu", "f9"},
347 {"Quit", "f10; esc"},
348 {"UserMenu", "f11"},
349 {"SaveAs", "f12; ctrl-f2"},
350 {"MarkColumn", "f13"},
351 {"ReplaceContinue", "f14; ctrl-f4"},
352 {"InsertFile", "f15"},
353 {"SearchContinue", "f17; ctrl-f7"},
354 {"EditNew", "ctrl-n"},
355 {"DeleteToWordBegin", "alt-backspace"},
356 {"DeleteToWordEnd", "alt-d"},
357 {"DeleteLine", "ctrl-y"},
358 {"DeleteToEnd", "ctrl-k"},
359 {"Undo", "ctrl-u; ctrl-backspace"},
360 {"Redo", "alt-r"},
361 #ifdef HAVE_CHARSET
362 {"SelectCodepage", "alt-e"},
363 #endif
364 {"Goto", "alt-l; alt-shift-l"},
365 {"Refresh", "ctrl-l"},
366 {"Shell", "ctrl-o"},
367 {"Top", "ctrl-home; ctrl-pgup; alt-lt"},
368 {"Bottom", "ctrl-end; ctrl-pgdn; alt-gt"},
369 {"TopOnScreen", "ctrl-pgup"},
370 {"BottomOnScreen", "ctrl-pgdn"},
371 {"ScrollUp", "ctrl-up"},
372 {"ScrollDown", "ctrl-down"},
373 {"Store", "ctrl-insert"},
374 {"Paste", "shift-insert"},
375 {"Cut", "shift-delete"},
376 {"BlockSave", "ctrl-f"},
377 {"MarkLeft", "shift-left"},
378 {"MarkRight", "shift-right"},
379 {"MarkUp", "shift-up"},
380 {"MarkDown", "shift-down"},
381 {"MarkPageUp", "shift-pgup"},
382 {"MarkPageDown", "shift-pgdn"},
383 {"MarkToWordBegin", "ctrl-shift-left"},
384 {"MarkToWordEnd", "ctrl-shift-right"},
385 {"MarkToHome", "shift-home"},
386 {"MarkToEnd", "shift-end"},
387 {"MarkToFileBegin", "ctrl-shift-home"},
388 {"MarkToFileEnd", "ctrl-shift-end"},
389 {"MarkToPageBegin", "ctrl-shift-pgup"},
390 {"MarkToPageEnd", "ctrl-shift-pgdn"},
391 {"MarkScrollUp", "ctrl-shift-up"},
392 {"MarkScrollDown", "ctrl-shift-down"},
393 {"MarkColumnLeft", "alt-left"},
394 {"MarkColumnRight", "alt-right"},
395 {"MarkColumnUp", "alt-up"},
396 {"MarkColumnDown", "alt-down"},
397 {"MarkColumnPageUp", "alt-pgup"},
398 {"MarkColumnPageDown", "alt-pgdn"},
399 {"InsertLiteral", "ctrl-q"},
400 {"Complete", "alt-tab"},
401 {"MatchBracket", "alt-b"},
402 {"ParagraphFormat", "alt-p"},
403 {"Bookmark", "alt-k"},
404 {"BookmarkFlush", "alt-o"},
405 {"BookmarkNext", "alt-j"},
406 {"BookmarkPrev", "alt-i"},
407 {"MacroStartStopRecord", "ctrl-r"},
408 {"MacroExecute", "ctrl-a"},
409 {"ShowNumbers", "alt-n"},
410 {"ShowTabTws", "alt-underline"},
411 {"SyntaxOnOff", "ctrl-s"},
412 {"Find", "alt-enter"},
413 {"FilePrev", "alt-minus"},
414 {"FileNext", "alt-plus"},
415 {"Sort", "alt-t"},
416 {"Mail", "alt-m"},
417 {"ExternalCommand", "alt-u"},
418 #ifdef HAVE_ASPELL
419 {"SpellCheckCurrentWord", "ctrl-p"},
420 #endif
421 {"ExtendedKeyMap", "ctrl-x"},
422 {NULL, NULL}
425 /* emacs keyboard layout emulation */
426 static const global_keymap_ini_t default_editor_x_keymap[] = {
427 {NULL, NULL}
429 #endif /* USE_INTERNAL_EDIT */
431 /* viewer */
432 static const global_keymap_ini_t default_viewer_keymap[] = {
433 {"Help", "f1"},
434 {"WrapMode", "f2"},
435 {"Quit", "f3; f10; q; esc"},
436 {"HexMode", "f4"},
437 {"Goto", "f5"},
438 {"Search", "f7"},
439 {"SearchContinue", "f17; n"},
440 {"MagicMode", "f8"},
441 {"NroffMode", "f9"},
442 {"Home", "ctrl-a"},
443 {"End", "ctrl-e"},
444 {"Left", "h; left"},
445 {"Right", "l; right"},
446 {"LeftQuick", "ctrl-left"},
447 {"RightQuick", "ctrl-right"},
448 {"Up", "k; y; insert; up; ctrl-p"},
449 {"Down", "j; e; delete; down; enter; ctrl-n"},
450 {"PageDown", "f; space; pgdn; ctrl-v"},
451 {"PageUp", "b; pgup; alt-v; backspace"},
452 {"HalfPageDown", "d"},
453 {"HalfPageUp", "u"},
454 {"Top", "home; ctrl-home; ctrl-pgup; a1; alt-lt; g"},
455 {"Bottom", "end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g"},
456 {"BookmarkGoto", "m"},
457 {"Bookmark", "r"},
458 {"FileNext", "ctrl-f"},
459 {"FilePrev", "ctrl-b"},
460 #ifdef HAVE_CHARSET
461 {"SelectCodepage", "alt-e"},
462 #endif
463 {"Shell", "ctrl-o"},
464 {"Ruler", "alt-r"},
465 {"SearchForward", "slash"},
466 {"SearchBackward", "question"},
467 {"SearchForwardContinue", "ctrl-s"},
468 {"SearchBackwardContinue", "ctrl-r"},
469 {NULL, NULL}
472 /* hex viewer */
473 static const global_keymap_ini_t default_viewer_hex_keymap[] = {
474 {"Help", "f1"},
475 {"HexEditMode", "f2"},
476 {"Quit", "f3; f10; q; esc"},
477 {"HexMode", "f4"},
478 {"Goto", "f5"},
479 {"Save", "f6"},
480 {"Search", "f7"},
481 {"SearchContinue", "f17; n"},
482 {"MagicMode", "f8"},
483 {"NroffMode", "f9"},
484 {"ToggleNavigation", "tab"},
485 {"Home", "ctrl-a; home"},
486 {"End", "ctrl-e; end"},
487 {"Left", "b; left"},
488 {"Right", "f; right"},
489 {"Up", "k; y; up"},
490 {"Down", "j; delete; down"},
491 {"PageDown", "pgdn; ctrl-v"},
492 {"PageUp", "pgup; alt-v"},
493 {"Top", "ctrl-home; ctrl-pgup; a1; alt-lt; g"},
494 {"Bottom", "ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g"},
495 #ifdef HAVE_CHARSET
496 {"SelectCodepage", "alt-e"},
497 #endif
498 {"Shell", "ctrl-o"},
499 {"SearchForward", "slash"},
500 {"SearchBackward", "question"},
501 {"SearchForwardContinue", "ctrl-s"},
502 {"SearchBackwardContinue", "ctrl-r"},
503 {NULL, NULL}
506 #ifdef USE_DIFF_VIEW
507 /* diff viewer */
508 static const global_keymap_ini_t default_diff_keymap[] = {
509 {"ShowSymbols", "alt-s; s"},
510 {"ShowNumbers", "alt-n; l"},
511 {"SplitFull", "f"},
512 {"SplitEqual", "equal"},
513 {"SplitMore", "gt"},
514 {"SplitLess", "lt"},
515 {"Tab2", "2"},
516 {"Tab3", "3"},
517 {"Tab4", "4"},
518 {"Tab8", "8"},
519 {"Swap", "ctrl-u"},
520 {"Redo", "ctrl-r"},
521 {"HunkNext", "n; enter; space"},
522 {"HunkPrev", "p; backspace"},
523 {"Goto", "g; shift-g"},
524 {"Save", "f2"},
525 {"Edit", "f4"},
526 {"EditOther", "f14"},
527 {"Merge", "f5"},
528 {"MergeOther", "f15"},
529 {"Search", "f7"},
530 {"SearchContinue", "f17"},
531 {"Options", "f9"},
532 {"Top", "ctrl-home"},
533 {"Bottom", "ctrl-end"},
534 {"Down", "down"},
535 {"Up", "up"},
536 {"LeftQuick", "ctrl-left"},
537 {"RightQuick", "ctrl-right"},
538 {"Left", "left"},
539 {"Right", "right"},
540 {"PageDown", "pgdn"},
541 {"PageUp", "pgup"},
542 {"Home", "home"},
543 {"End", "end"},
544 {"Help", "f1"},
545 {"Quit", "f10; q; shift-q; esc"},
546 #ifdef HAVE_CHARSET
547 {"SelectCodepage", "alt-e"},
548 #endif
549 {"Shell", "ctrl-o"},
550 {NULL, NULL}
552 #endif
554 /*** file scope macro definitions ****************************************************************/
556 /*** file scope type declarations ****************************************************************/
558 /*** file scope variables ************************************************************************/
560 /*** file scope functions ************************************************************************/
561 /* --------------------------------------------------------------------------------------------- */
563 static void
564 create_default_keymap_section (mc_config_t * keymap, const char *section,
565 const global_keymap_ini_t * k)
567 size_t i;
569 for (i = 0; k[i].key != NULL; i++)
570 mc_config_set_string_raw (keymap, section, k[i].key, k[i].value);
573 /* --------------------------------------------------------------------------------------------- */
574 /*** public functions ****************************************************************************/
575 /* --------------------------------------------------------------------------------------------- */
577 mc_config_t *
578 create_default_keymap (void)
580 mc_config_t *keymap;
582 keymap = mc_config_init (NULL, TRUE);
584 create_default_keymap_section (keymap, KEYMAP_SECTION_MAIN, default_main_keymap);
585 create_default_keymap_section (keymap, KEYMAP_SECTION_MAIN_EXT, default_main_x_keymap);
586 create_default_keymap_section (keymap, KEYMAP_SECTION_PANEL, default_panel_keymap);
587 create_default_keymap_section (keymap, KEYMAP_SECTION_DIALOG, default_dialog_keymap);
588 create_default_keymap_section (keymap, KEYMAP_SECTION_INPUT, default_input_keymap);
589 create_default_keymap_section (keymap, KEYMAP_SECTION_LISTBOX, default_listbox_keymap);
590 create_default_keymap_section (keymap, KEYMAP_SECTION_TREE, default_tree_keymap);
591 create_default_keymap_section (keymap, KEYMAP_SECTION_HELP, default_help_keymap);
592 #ifdef USE_INTERNAL_EDIT
593 create_default_keymap_section (keymap, KEYMAP_SECTION_EDITOR, default_editor_keymap);
594 create_default_keymap_section (keymap, KEYMAP_SECTION_EDITOR_EXT, default_editor_x_keymap);
595 #endif
596 create_default_keymap_section (keymap, KEYMAP_SECTION_VIEWER, default_viewer_keymap);
597 create_default_keymap_section (keymap, KEYMAP_SECTION_VIEWER_HEX, default_viewer_hex_keymap);
598 #ifdef USE_DIFF_VIEW
599 create_default_keymap_section (keymap, KEYMAP_SECTION_DIFFVIEWER, default_diff_keymap);
600 #endif
602 return keymap;