aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-25 22:13:19 +0100
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-25 22:13:19 +0100
commit3c99be68e8d3c4d67b2db54b8650bf55d769b98e (patch)
tree7d248e2e98bd3c86b69f602d236b838b06fbc5b5
parente7904128c61f96b2adbed6e946964053c70e3d4e (diff)
downloadst-3c99be68e8d3c4d67b2db54b8650bf55d769b98e.tar.gz
st-3c99be68e8d3c4d67b2db54b8650bf55d769b98e.tar.bz2
Add support for insert key
Insert key stands for a key which allows enter or leaves insert mode, so let it generates the correct sequence to change between these modes: - Insert: Enter in insert mode. - Shift + Insert: Leave insert mode (replace mode). - Control + Insert: Insert a blank line. Like Shift + Insert also paste text, if a user want this feature be full functional he has to modify such shortcut. --- config.def.h | 16 ++++++++++++---- st.info | 3 +++ 2 files changed, 15 insertions(+), 4 deletions(-)
-rw-r--r--config.def.h16
-rw-r--r--st.info3
2 files changed, 15 insertions, 4 deletions
diff --git a/config.def.h b/config.def.h
index 742e84e..a3e87e2 100644
--- a/config.def.h
+++ b/config.def.h
@@ -125,8 +125,12 @@ static Key key[] = {
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0, 0},
- { XK_KP_Insert, ShiftMask, "\033[2;2~", 0, 0, 0},
- { XK_KP_Insert, XK_ANY_MOD, "\033[2~", 0, 0, 0},
+ { XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0, 0},
+ { XK_KP_Insert, ShiftMask, "\033[4l", -1, 0, 0},
+ { XK_KP_Insert, ControlMask, "\033[L", -1, 0, 0},
+ { XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0, 0},
+ { XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0},
+ { XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", 0, 0, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", 0, 0, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0, 0},
@@ -173,8 +177,12 @@ static Key key[] = {
{ XK_Return, Mod1Mask, "\033\r\n", 0, 0, +1},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0, -1},
{ XK_Return, XK_ANY_MOD, "\r\n", 0, 0, +1},
- { XK_Insert, ShiftMask, "\033[2;2~", 0, 0, 0},
- { XK_Insert, XK_ANY_MOD, "\033[2~", 0, 0, 0},
+ { XK_Insert, ShiftMask, "\033[4l", -1, 0, 0},
+ { XK_Insert, ShiftMask, "\033[2;2~", +1, 0, 0},
+ { XK_Insert, ControlMask, "\033[L", -1, 0, 0},
+ { XK_Insert, ControlMask, "\033[2;5~", +1, 0, 0},
+ { XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0},
+ { XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", 0, 0, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", 0, 0, 0},
{ XK_Home, ShiftMask, "\033[1;2H", 0, 0, 0},
diff --git a/st.info b/st.info
index d0064db..4fc9bdb 100644
--- a/st.info
+++ b/st.info
@@ -138,6 +138,9 @@ st| simpleterm,
kf62=\E[1;4Q,
kf63=\E[1;4R,
khome=\E[1~,
+ kil1=\E[2;5~,
+ krmir=\E[2;2~,
+ kich1=\E[2~,
knp=\E[6~,
kmous=\E[M,
kpp=\E[5~,