/* vi_keymap.c -- the keymap for vi_mode in readline (). */
/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
The GNU Readline Library is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 1, or
(at your option) any later version.
The GNU Readline Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
The GNU General Public License is often shipped with GNU software, and
is generally kept in a file called COPYING or LICENSE. If you do not
have a copy of the license, write to the Free Software Foundation,
675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (BUFSIZ)
#include <stdio.h>
#endif /* !BUFSIZ */
#include "readline.h"
#if 0
extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
#endif
/* The keymap arrays for handling vi mode. */
KEYMAP_ENTRY_ARRAY vi_movement_keymap =
{
/* The regular control keys come first. */
{ISFUNC, (Function *) 0x0}, /* Control-@ */
{ISFUNC, (Function *) 0x0}, /* Control-a */
{ISFUNC, (Function *) 0x0}, /* Control-b */
{ISFUNC, (Function *) 0x0}, /* Control-c */
{ISFUNC, rl_vi_eof_maybe}, /* Control-d */
{ISFUNC, rl_emacs_editing_mode}, /* Control-e */
{ISFUNC, (Function *) 0x0}, /* Control-f */
{ISFUNC, rl_abort}, /* Control-g */
{ISFUNC, rl_backward}, /* Control-h */
{ISFUNC, (Function *) 0x0}, /* Control-i */
{ISFUNC, rl_newline}, /* Control-j */
{ISFUNC, rl_kill_line}, /* Control-k */
{ISFUNC, rl_clear_screen}, /* Control-l */
{ISFUNC, rl_newline}, /* Control-m */
{ISFUNC, rl_get_next_history}, /* Control-n */
{ISFUNC, (Function *) 0x0}, /* Control-o */
{ISFUNC, rl_get_previous_history}, /* Control-p */
{ISFUNC, rl_quoted_insert}, /* Control-q */
{ISFUNC, rl_reverse_search_history}, /* Control-r */
{ISFUNC, rl_forward_search_history}, /* Control-s */
{ISFUNC, rl_transpose_chars}, /* Control-t */
{ISFUNC, rl_unix_line_discard}, /* Control-u */
{ISFUNC, rl_quoted_insert}, /* Control-v */
{ISFUNC, rl_unix_word_rubout}, /* Control-w */
{ISFUNC, (Function *) 0x0}, /* Control-x */
{ISFUNC, rl_yank}, /* Control-y */
{ISFUNC, (Function *) 0x0}, /* Control-z */
{ISFUNC, (Function *) 0x0}, /* Control-[ *//* vi_escape_keymap */
{ISFUNC, (Function *) 0x0}, /* Control-\ */
{ISFUNC, (Function *) 0x0}, /* Control-] */
{ISFUNC, (Function *) 0x0}, /* Control-^ */
{ISFUNC, rl_undo_command}, /* Control-_ */
/* The start of printing characters. */
{ISFUNC, rl_forward}, /* SPACE */
{ISFUNC, (Function *) 0x0}, /* ! */
{ISFUNC, (Function *) 0x0}, /* " */
{ISFUNC, rl_vi_comment}, /* # */
{ISFUNC, rl_end_of_line}, /* $ */
{ISFUNC, rl_vi_match}, /* % */
{ISFUNC, rl_vi_tilde_expand}, /* & */
{ISFUNC, (Function *) 0x0}, /* ' */
{ISFUNC, (Function *) 0x0}, /* ( */
{ISFUNC, (Function *) 0x0}, /* ) */
{ISFUNC, rl_vi_complete}, /* * */
{ISFUNC, rl_get_next_history}, /* + */
{ISFUNC, rl_vi_char_search}, /* , */
{ISFUNC, rl_get_previous_history}, /* - */
{ISFUNC, rl_vi_redo}, /* . */
{ISFUNC, rl_vi_search}, /* / */
/* Regular digits. */
{ISFUNC, rl_beg_of_line}, /* 0 */
{ISFUNC, rl_vi_arg_digit}, /* 1 */
{ISFUNC, rl_vi_arg_digit}, /* 2 */
{ISFUNC, rl_vi_arg_digit}, /* 3 */
{ISFUNC, rl_vi_arg_digit}, /* 4 */
{ISFUNC, rl_vi_arg_digit}, /* 5 */
{ISFUNC, rl_vi_arg_digit}, /* 6 */
{ISFUNC, rl_vi_arg_digit}, /* 7 */
{ISFUNC, rl_vi_arg_digit}, /* 8 */
{ISFUNC, rl_vi_arg_digit}, /* 9 */
/* A little more punctuation. */
{ISFUNC, (Function *) 0x0}, /* : */
{ISFUNC, rl_vi_char_search}, /* ; */
{ISFUNC, (Function *) 0x0}, /* < */
{ISFUNC, rl_vi_complete}, /* = */
{ISFUNC, (Function *) 0x0}, /* > */
{ISFUNC, rl_vi_search}, /* ? */
{ISFUNC, (Function *) 0x0}, /* @ */
/* Uppercase alphabet. */
{ISFUNC, rl_vi_append_eol}, /* A */
{ISFUNC, rl_vi_prev_word}, /* B */
{ISFUNC, rl_vi_change_to}, /* C */
{ISFUNC, rl_vi_delete_to}, /* D */
{ISFUNC, rl_vi_end_word}, /* E */
{ISFUNC, rl_vi_char_search}, /* F */
{ISFUNC, rl_vi_fetch_history}, /* G */
{ISFUNC, (Function *) 0x0}, /* H */
{ISFUNC, rl_vi_insert_beg}, /* I */
{ISFUNC, (Function *) 0x0}, /* J */
{ISFUNC, (Function *) 0x0}, /* K */
{ISFUNC, (Function *) 0x0}, /* L */
{ISFUNC, (Function *) 0x0}, /* M */
{ISFUNC, rl_vi_search_again}, /* N */
{ISFUNC, (Function *) 0x0}, /* O */
{ISFUNC, rl_vi_put}, /* P */
{ISFUNC, (Function *) 0x0}, /* Q */
{ISFUNC, rl_vi_replace}, /* R */
{ISFUNC, rl_vi_subst}, /* S */
{ISFUNC, rl_vi_char_search}, /* T */
{ISFUNC, rl_revert_line}, /* U */
{ISFUNC, (Function *) 0x0}, /* V */
{ISFUNC, rl_vi_next_word}, /* W */
{ISFUNC, rl_rubout}, /* X */
{ISFUNC, rl_vi_yank_to}, /* Y */
{ISFUNC, (Function *) 0x0}, /* Z */
/* Some more punctuation. */
{ISFUNC, (Function *) 0x0}, /* [ */
{ISFUNC, rl_vi_complete}, /* \ */
{ISFUNC, (Function *) 0x0}, /* ] */
{ISFUNC, rl_vi_first_print}, /* ^ */
{ISFUNC, rl_vi_yank_arg}, /* _ */
{ISFUNC, (Function *) 0x0}, /* ` */
/* Lowercase alphabet. */
{ISFUNC, rl_vi_append_mode}, /* a */
{ISFUNC, rl_vi_prev_word}, /* b */
{ISFUNC, rl_vi_change_to}, /* c */
{ISFUNC, rl_vi_delete_to}, /* d */
{ISFUNC, rl_vi_end_word}, /* e */
{ISFUNC, rl_vi_char_search}, /* f */
{ISFUNC, (Function *) 0x0}, /* g */
{ISFUNC, rl_backward}, /* h */
{ISFUNC, rl_vi_insertion_mode}, /* i */
{ISFUNC, rl_get_next_history}, /* j */
{ISFUNC, rl_get_previous_history}, /* k */
{ISFUNC, rl_forward}, /* l */
{ISFUNC, (Function *) 0x0}, /* m */
{ISFUNC, rl_vi_search_again}, /* n */
{ISFUNC, (Function *) 0x0}, /* o */
{ISFUNC, rl_vi_put}, /* p */
{ISFUNC, (Function *) 0x0}, /* q */
{ISFUNC, rl_vi_change_char}, /* r */
{ISFUNC, rl_vi_subst}, /* s */
{ISFUNC, rl_vi_char_search}, /* t */
{ISFUNC, rl_undo_command}, /* u */
{ISFUNC, (Function *) 0x0}, /* v */
{ISFUNC, rl_vi_next_word}, /* w */
{ISFUNC, rl_vi_delete}, /* x */
{ISFUNC, rl_vi_yank_to}, /* y */
{ISFUNC, (Function *) 0x0}, /* z */
/* Final punctuation. */
{ISFUNC, (Function *) 0x0}, /* { */
{ISFUNC, rl_vi_column}, /* | */
{ISFUNC, (Function *) 0x0}, /* } */
{ISFUNC, rl_vi_change_case}, /* ~ */
{ISFUNC, (Function *) 0x0}, /* RUBOUT */
#if KEYMAP_SIZE > 128
/* Undefined keys. */
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0}
#endif /* KEYMAP_SIZE > 128 */
};
KEYMAP_ENTRY_ARRAY vi_insertion_keymap =
{
/* The regular control keys come first. */
{ISFUNC, (Function *) 0x0}, /* Control-@ */
{ISFUNC, rl_insert}, /* Control-a */
{ISFUNC, rl_insert}, /* Control-b */
{ISFUNC, rl_insert}, /* Control-c */
{ISFUNC, rl_vi_eof_maybe}, /* Control-d */
{ISFUNC, rl_insert}, /* Control-e */
{ISFUNC, rl_insert}, /* Control-f */
{ISFUNC, rl_insert}, /* Control-g */
{ISFUNC, rl_rubout}, /* Control-h */
{ISFUNC, rl_complete}, /* Control-i */
{ISFUNC, rl_newline}, /* Control-j */
{ISFUNC, rl_insert}, /* Control-k */
{ISFUNC, rl_insert}, /* Control-l */
{ISFUNC, rl_newline}, /* Control-m */
{ISFUNC, rl_insert}, /* Control-n */
{ISFUNC, rl_insert}, /* Control-o */
{ISFUNC, rl_insert}, /* Control-p */
{ISFUNC, rl_insert}, /* Control-q */
{ISFUNC, rl_reverse_search_history}, /* Control-r */
{ISFUNC, rl_forward_search_history}, /* Control-s */
{ISFUNC, rl_transpose_chars}, /* Control-t */
{ISFUNC, rl_unix_line_discard}, /* Control-u */
{ISFUNC, rl_quoted_insert}, /* Control-v */
{ISFUNC, rl_unix_word_rubout}, /* Control-w */
{ISFUNC, rl_insert}, /* Control-x */
{ISFUNC, rl_yank}, /* Control-y */
{ISFUNC, rl_insert}, /* Control-z */
{ISFUNC, rl_vi_movement_mode}, /* Control-[ */
{ISFUNC, rl_insert}, /* Control-\ */
{ISFUNC, rl_insert}, /* Control-] */
{ISFUNC, rl_insert}, /* Control-^ */
{ISFUNC, rl_undo_command}, /* Control-_ */
/* The start of printing characters. */
{ISFUNC, rl_insert}, /* SPACE */
{ISFUNC, rl_insert}, /* ! */
{ISFUNC, rl_insert}, /* " */
{ISFUNC, rl_insert}, /* # */
{ISFUNC, rl_insert}, /* $ */
{ISFUNC, rl_insert}, /* % */
{ISFUNC, rl_insert}, /* & */
{ISFUNC, rl_insert}, /* ' */
{ISFUNC, rl_insert}, /* ( */
{ISFUNC, rl_insert}, /* ) */
{ISFUNC, rl_insert}, /* * */
{ISFUNC, rl_insert}, /* + */
{ISFUNC, rl_insert}, /* , */
{ISFUNC, rl_insert}, /* - */
{ISFUNC, rl_insert}, /* . */
{ISFUNC, rl_insert}, /* / */
/* Regular digits. */
{ISFUNC, rl_insert}, /* 0 */
{ISFUNC, rl_insert}, /* 1 */
{ISFUNC, rl_insert}, /* 2 */
{ISFUNC, rl_insert}, /* 3 */
{ISFUNC, rl_insert}, /* 4 */
{ISFUNC, rl_insert}, /* 5 */
{ISFUNC, rl_insert}, /* 6 */
{ISFUNC, rl_insert}, /* 7 */
{ISFUNC, rl_insert}, /* 8 */
{ISFUNC, rl_insert}, /* 9 */
/* A little more punctuation. */
{ISFUNC, rl_insert}, /* : */
{ISFUNC, rl_insert}, /* ; */
{ISFUNC, rl_insert}, /* < */
{ISFUNC, rl_insert}, /* = */
{ISFUNC, rl_insert}, /* > */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* @ */
/* Uppercase alphabet. */
{ISFUNC, rl_insert}, /* A */
{ISFUNC, rl_insert}, /* B */
{ISFUNC, rl_insert}, /* C */
{ISFUNC, rl_insert}, /* D */
{ISFUNC, rl_insert}, /* E */
{ISFUNC, rl_insert}, /* F */
{ISFUNC, rl_insert}, /* G */
{ISFUNC, rl_insert}, /* H */
{ISFUNC, rl_insert}, /* I */
{ISFUNC, rl_insert}, /* J */
{ISFUNC, rl_insert}, /* K */
{ISFUNC, rl_insert}, /* L */
{ISFUNC, rl_insert}, /* M */
{ISFUNC, rl_insert}, /* N */
{ISFUNC, rl_insert}, /* O */
{ISFUNC, rl_insert}, /* P */
{ISFUNC, rl_insert}, /* Q */
{ISFUNC, rl_insert}, /* R */
{ISFUNC, rl_insert}, /* S */
{ISFUNC, rl_insert}, /* T */
{ISFUNC, rl_insert}, /* U */
{ISFUNC, rl_insert}, /* V */
{ISFUNC, rl_insert}, /* W */
{ISFUNC, rl_insert}, /* X */
{ISFUNC, rl_insert}, /* Y */
{ISFUNC, rl_insert}, /* Z */
/* Some more punctuation. */
{ISFUNC, rl_insert}, /* [ */
{ISFUNC, rl_insert}, /* \ */
{ISFUNC, rl_insert}, /* ] */
{ISFUNC, rl_insert}, /* ^ */
{ISFUNC, rl_insert}, /* _ */
{ISFUNC, rl_insert}, /* ` */
/* Lowercase alphabet. */
{ISFUNC, rl_insert}, /* a */
{ISFUNC, rl_insert}, /* b */
{ISFUNC, rl_insert}, /* c */
{ISFUNC, rl_insert}, /* d */
{ISFUNC, rl_insert}, /* e */
{ISFUNC, rl_insert}, /* f */
{ISFUNC, rl_insert}, /* g */
{ISFUNC, rl_insert}, /* h */
{ISFUNC, rl_insert}, /* i */
{ISFUNC, rl_insert}, /* j */
{ISFUNC, rl_insert}, /* k */
{ISFUNC, rl_insert}, /* l */
{ISFUNC, rl_insert}, /* m */
{ISFUNC, rl_insert}, /* n */
{ISFUNC, rl_insert}, /* o */
{ISFUNC, rl_insert}, /* p */
{ISFUNC, rl_insert}, /* q */
{ISFUNC, rl_insert}, /* r */
{ISFUNC, rl_insert}, /* s */
{ISFUNC, rl_insert}, /* t */
{ISFUNC, rl_insert}, /* u */
{ISFUNC, rl_insert}, /* v */
{ISFUNC, rl_insert}, /* w */
{ISFUNC, rl_insert}, /* x */
{ISFUNC, rl_insert}, /* y */
{ISFUNC, rl_insert}, /* z */
/* Final punctuation. */
{ISFUNC, rl_insert}, /* { */
{ISFUNC, rl_insert}, /* | */
{ISFUNC, rl_insert}, /* } */
{ISFUNC, rl_insert}, /* ~ */
{ISFUNC, rl_rubout}, /* RUBOUT */
#if KEYMAP_SIZE > 128
/* Pure 8-bit characters (128 - 159).
These might be used in some
character sets. */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
{ISFUNC, rl_insert}, /* ? */
/* ISO Latin-1 characters (160 - 255) */
{ISFUNC, rl_insert}, /* No-break space */
{ISFUNC, rl_insert}, /* Inverted exclamation mark */
{ISFUNC, rl_insert}, /* Cent sign */
{ISFUNC, rl_insert}, /* Pound sign */
{ISFUNC, rl_insert}, /* Currency sign */
{ISFUNC, rl_insert}, /* Yen sign */
{ISFUNC, rl_insert}, /* Broken bar */
{ISFUNC, rl_insert}, /* Section sign */
{ISFUNC, rl_insert}, /* Diaeresis */
{ISFUNC, rl_insert}, /* Copyright sign */
{ISFUNC, rl_insert}, /* Feminine ordinal indicator */
{ISFUNC, rl_insert}, /* Left pointing double angle quotation mark */
{ISFUNC, rl_insert}, /* Not sign */
{ISFUNC, rl_insert}, /* Soft hyphen */
{ISFUNC, rl_insert}, /* Registered sign */
{ISFUNC, rl_insert}, /* Macron */
{ISFUNC, rl_insert}, /* Degree sign */
{ISFUNC, rl_insert}, /* Plus-minus sign */
{ISFUNC, rl_insert}, /* Superscript two */
{ISFUNC, rl_insert}, /* Superscript three */
{ISFUNC, rl_insert}, /* Acute accent */
{ISFUNC, rl_insert}, /* Micro sign */
{ISFUNC, rl_insert}, /* Pilcrow sign */
{ISFUNC, rl_insert}, /* Middle dot */
{ISFUNC, rl_insert}, /* Cedilla */
{ISFUNC, rl_insert}, /* Superscript one */
{ISFUNC, rl_insert}, /* Masculine ordinal indicator */
{ISFUNC, rl_insert}, /* Right pointing double angle quotation mark */
{ISFUNC, rl_insert}, /* Vulgar fraction one quarter */
{ISFUNC, rl_insert}, /* Vulgar fraction one half */
{ISFUNC, rl_insert}, /* Vulgar fraction three quarters */
{ISFUNC, rl_insert}, /* Inverted questionk mark */
{ISFUNC, rl_insert}, /* Latin capital letter a with grave */
{ISFUNC, rl_insert}, /* Latin capital letter a with acute */
{ISFUNC, rl_insert}, /* Latin capital letter a with circumflex */
{ISFUNC, rl_insert}, /* Latin capital letter a with tilde */
{ISFUNC, rl_insert}, /* Latin capital letter a with diaeresis */
{ISFUNC, rl_insert}, /* Latin capital letter a with ring above */
{ISFUNC, rl_insert}, /* Latin capital letter ae */
{ISFUNC, rl_insert}, /* Latin capital letter c with cedilla */
{ISFUNC, rl_insert}, /* Latin capital letter e with grave */
{ISFUNC, rl_insert}, /* Latin capital letter e with acute */
{ISFUNC, rl_insert}, /* Latin capital letter e with circumflex */
{ISFUNC, rl_insert}, /* Latin capital letter e with diaeresis */
{ISFUNC, rl_insert}, /* Latin capital letter i with grave */
{ISFUNC, rl_insert}, /* Latin capital letter i with acute */
{ISFUNC, rl_insert}, /* Latin capital letter i with circumflex */
{ISFUNC, rl_insert}, /* Latin capital letter i with diaeresis */
{ISFUNC, rl_insert}, /* Latin capital letter eth (Icelandic) */
{ISFUNC, rl_insert}, /* Latin capital letter n with tilde */
{ISFUNC, rl_insert}, /* Latin capital letter o with grave */
{ISFUNC, rl_insert}, /* Latin capital letter o with acute */
{ISFUNC, rl_insert}, /* Latin capital letter o with circumflex */
{ISFUNC, rl_insert}, /* Latin capital letter o with tilde */
{ISFUNC, rl_insert}, /* Latin capital letter o with diaeresis */
{ISFUNC, rl_insert}, /* Multiplication sign */
{ISFUNC, rl_insert}, /* Latin capital letter o with stroke */
{ISFUNC, rl_insert}, /* Latin capital letter u with grave */
{ISFUNC, rl_insert}, /* Latin capital letter u with acute */
{ISFUNC, rl_insert}, /* Latin capital letter u with circumflex */
{ISFUNC, rl_insert}, /* Latin capital letter u with diaeresis */
{ISFUNC, rl_insert}, /* Latin capital letter Y with acute */
{ISFUNC, rl_insert}, /* Latin capital letter thorn (Icelandic) */
{ISFUNC, rl_insert}, /* Latin small letter sharp s (German) */
{ISFUNC, rl_insert}, /* Latin small letter a with grave */
{ISFUNC, rl_insert}, /* Latin small letter a with acute */
{ISFUNC, rl_insert}, /* Latin small letter a with circumflex */
{ISFUNC, rl_insert}, /* Latin small letter a with tilde */
{ISFUNC, rl_insert}, /* Latin small letter a with diaeresis */
{ISFUNC, rl_insert}, /* Latin small letter a with ring above */
{ISFUNC, rl_insert}, /* Latin small letter ae */
{ISFUNC, rl_insert}, /* Latin small letter c with cedilla */
{ISFUNC, rl_insert}, /* Latin small letter e with grave */
{ISFUNC, rl_insert}, /* Latin small letter e with acute */
{ISFUNC, rl_insert}, /* Latin small letter e with circumflex */
{ISFUNC, rl_insert}, /* Latin small letter e with diaeresis */
{ISFUNC, rl_insert}, /* Latin small letter i with grave */
{ISFUNC, rl_insert}, /* Latin small letter i with acute */
{ISFUNC, rl_insert}, /* Latin small letter i with circumflex */
{ISFUNC, rl_insert}, /* Latin small letter i with diaeresis */
{ISFUNC, rl_insert}, /* Latin small letter eth (Icelandic) */
{ISFUNC, rl_insert}, /* Latin small letter n with tilde */
{ISFUNC, rl_insert}, /* Latin small letter o with grave */
{ISFUNC, rl_insert}, /* Latin small letter o with acute */
{ISFUNC, rl_insert}, /* Latin small letter o with circumflex */
{ISFUNC, rl_insert}, /* Latin small letter o with tilde */
{ISFUNC, rl_insert}, /* Latin small letter o with diaeresis */
{ISFUNC, rl_insert}, /* Division sign */
{ISFUNC, rl_insert}, /* Latin small letter o with stroke */
{ISFUNC, rl_insert}, /* Latin small letter u with grave */
{ISFUNC, rl_insert}, /* Latin small letter u with acute */
{ISFUNC, rl_insert}, /* Latin small letter u with circumflex */
{ISFUNC, rl_insert}, /* Latin small letter u with diaeresis */
{ISFUNC, rl_insert}, /* Latin small letter y with acute */
{ISFUNC, rl_insert}, /* Latin small letter thorn (Icelandic) */
{ISFUNC, rl_insert} /* Latin small letter y with diaeresis */
#endif /* KEYMAP_SIZE > 128 */
};
/* Unused for the time being. */
#if 0
KEYMAP_ENTRY_ARRAY vi_escape_keymap =
{
/* The regular control keys come first. */
{ISFUNC, (Function *) 0x0}, /* Control-@ */
{ISFUNC, (Function *) 0x0}, /* Control-a */
{ISFUNC, (Function *) 0x0}, /* Control-b */
{ISFUNC, (Function *) 0x0}, /* Control-c */
{ISFUNC, (Function *) 0x0}, /* Control-d */
{ISFUNC, (Function *) 0x0}, /* Control-e */
{ISFUNC, (Function *) 0x0}, /* Control-f */
{ISFUNC, (Function *) 0x0}, /* Control-g */
{ISFUNC, (Function *) 0x0}, /* Control-h */
{ISFUNC, rl_tab_insert}, /* Control-i */
{ISFUNC, rl_emacs_editing_mode}, /* Control-j */
{ISFUNC, rl_kill_line}, /* Control-k */
{ISFUNC, (Function *) 0x0}, /* Control-l */
{ISFUNC, rl_emacs_editing_mode}, /* Control-m */
{ISFUNC, (Function *) 0x0}, /* Control-n */
{ISFUNC, (Function *) 0x0}, /* Control-o */
{ISFUNC, (Function *) 0x0}, /* Control-p */
{ISFUNC, (Function *) 0x0}, /* Control-q */
{ISFUNC, (Function *) 0x0}, /* Control-r */
{ISFUNC, (Function *) 0x0}, /* Control-s */
{ISFUNC, (Function *) 0x0}, /* Control-t */
{ISFUNC, (Function *) 0x0}, /* Control-u */
{ISFUNC, (Function *) 0x0}, /* Control-v */
{ISFUNC, (Function *) 0x0}, /* Control-w */
{ISFUNC, (Function *) 0x0}, /* Control-x */
{ISFUNC, (Function *) 0x0}, /* Control-y */
{ISFUNC, (Function *) 0x0}, /* Control-z */
{ISFUNC, rl_vi_movement_mode}, /* Control-[ */
{ISFUNC, (Function *) 0x0}, /* Control-\ */
{ISFUNC, (Function *) 0x0}, /* Control-] */
{ISFUNC, (Function *) 0x0}, /* Control-^ */
{ISFUNC, rl_undo_command}, /* Control-_ */
/* The start of printing characters. */
{ISFUNC, (Function *) 0x0}, /* SPACE */
{ISFUNC, (Function *) 0x0}, /* ! */
{ISFUNC, (Function *) 0x0}, /* " */
{ISFUNC, (Function *) 0x0}, /* # */
{ISFUNC, (Function *) 0x0}, /* $ */
{ISFUNC, (Function *) 0x0}, /* % */
{ISFUNC, (Function *) 0x0}, /* & */
{ISFUNC, (Function *) 0x0}, /* ' */
{ISFUNC, (Function *) 0x0}, /* ( */
{ISFUNC, (Function *) 0x0}, /* ) */
{ISFUNC, (Function *) 0x0}, /* * */
{ISFUNC, (Function *) 0x0}, /* + */
{ISFUNC, (Function *) 0x0}, /* , */
{ISFUNC, (Function *) 0x0}, /* - */
{ISFUNC, (Function *) 0x0}, /* . */
{ISFUNC, (Function *) 0x0}, /* / */
/* Regular digits. */
{ISFUNC, rl_vi_arg_digit}, /* 0 */
{ISFUNC, rl_vi_arg_digit}, /* 1 */
{ISFUNC, rl_vi_arg_digit}, /* 2 */
{ISFUNC, rl_vi_arg_digit}, /* 3 */
{ISFUNC, rl_vi_arg_digit}, /* 4 */
{ISFUNC, rl_vi_arg_digit}, /* 5 */
{ISFUNC, rl_vi_arg_digit}, /* 6 */
{ISFUNC, rl_vi_arg_digit}, /* 7 */
{ISFUNC, rl_vi_arg_digit}, /* 8 */
{ISFUNC, rl_vi_arg_digit}, /* 9 */
/* A little more punctuation. */
{ISFUNC, (Function *) 0x0}, /* : */
{ISFUNC, (Function *) 0x0}, /* ; */
{ISFUNC, (Function *) 0x0}, /* < */
{ISFUNC, (Function *) 0x0}, /* = */
{ISFUNC, (Function *) 0x0}, /* > */
{ISFUNC, (Function *) 0x0}, /* ? */
{ISFUNC, (Function *) 0x0}, /* @ */
/* Uppercase alphabet. */
{ISFUNC, rl_do_lowercase_version}, /* A */
{ISFUNC, rl_do_lowercase_version}, /* B */
{ISFUNC, rl_do_lowercase_version}, /* C */
{ISFUNC, rl_do_lowercase_version}, /* D */
{ISFUNC, rl_do_lowercase_version}, /* E */
{ISFUNC, rl_do_lowercase_version}, /* F */
{ISFUNC, rl_do_lowercase_version}, /* G */
{ISFUNC, rl_do_lowercase_version}, /* H */
{ISFUNC, rl_do_lowercase_version}, /* I */
{ISFUNC, rl_do_lowercase_version}, /* J */
{ISFUNC, rl_do_lowercase_version}, /* K */
{ISFUNC, rl_do_lowercase_version}, /* L */
{ISFUNC, rl_do_lowercase_version}, /* M */
{ISFUNC, rl_do_lowercase_version}, /* N */
{ISFUNC, rl_do_lowercase_version}, /* O */
{ISFUNC, rl_do_lowercase_version}, /* P */
{ISFUNC, rl_do_lowercase_version}, /* Q */
{ISFUNC, rl_do_lowercase_version}, /* R */
{ISFUNC, rl_do_lowercase_version}, /* S */
{ISFUNC, rl_do_lowercase_version}, /* T */
{ISFUNC, rl_do_lowercase_version}, /* U */
{ISFUNC, rl_do_lowercase_version}, /* V */
{ISFUNC, rl_do_lowercase_version}, /* W */
{ISFUNC, rl_do_lowercase_version}, /* X */
{ISFUNC, rl_do_lowercase_version}, /* Y */
{ISFUNC, rl_do_lowercase_version}, /* Z */
/* Some more punctuation. */
{ISFUNC, rl_arrow_keys}, /* [ */
{ISFUNC, (Function *) 0x0}, /* \ */
{ISFUNC, (Function *) 0x0}, /* ] */
{ISFUNC, (Function *) 0x0}, /* ^ */
{ISFUNC, (Function *) 0x0}, /* _ */
{ISFUNC, (Function *) 0x0}, /* ` */
/* Lowercase alphabet. */
{ISFUNC, (Function *) 0x0}, /* a */
{ISFUNC, (Function *) 0x0}, /* b */
{ISFUNC, (Function *) 0x0}, /* c */
{ISFUNC, (Function *) 0x0}, /* d */
{ISFUNC, (Function *) 0x0}, /* e */
{ISFUNC, (Function *) 0x0}, /* f */
{ISFUNC, (Function *) 0x0}, /* g */
{ISFUNC, (Function *) 0x0}, /* h */
{ISFUNC, (Function *) 0x0}, /* i */
{ISFUNC, (Function *) 0x0}, /* j */
{ISFUNC, (Function *) 0x0}, /* k */
{ISFUNC, (Function *) 0x0}, /* l */
{ISFUNC, (Function *) 0x0}, /* m */
{ISFUNC, (Function *) 0x0}, /* n */
{ISFUNC, rl_arrow_keys}, /* o */
{ISFUNC, (Function *) 0x0}, /* p */
{ISFUNC, (Function *) 0x0}, /* q */
{ISFUNC, (Function *) 0x0}, /* r */
{ISFUNC, (Function *) 0x0}, /* s */
{ISFUNC, (Function *) 0x0}, /* t */
{ISFUNC, (Function *) 0x0}, /* u */
{ISFUNC, (Function *) 0x0}, /* v */
{ISFUNC, (Function *) 0x0}, /* w */
{ISFUNC, (Function *) 0x0}, /* x */
{ISFUNC, (Function *) 0x0}, /* y */
{ISFUNC, (Function *) 0x0}, /* z */
/* Final punctuation. */
{ISFUNC, (Function *) 0x0}, /* { */
{ISFUNC, (Function *) 0x0}, /* | */
{ISFUNC, (Function *) 0x0}, /* } */
{ISFUNC, (Function *) 0x0}, /* ~ */
{ISFUNC, rl_backward_kill_word}, /* RUBOUT */
#if KEYMAP_SIZE > 128
/* Undefined keys. */
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0},
{ISFUNC, (Function *) 0x0}
#endif /* KEYMAP_SIZE > 128 */
};
#endif