summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/key-bindings.zsh13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
index 8168c8d90..a57b04122 100644
--- a/lib/key-bindings.zsh
+++ b/lib/key-bindings.zsh
@@ -2,6 +2,19 @@
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets
+# Make sure that the terminal is in application mode when zle is active, since
+# only then values from $terminfo are valid
+if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
+ function zle-line-init() {
+ echoti smkx
+ }
+ function zle-line-finish() {
+ echoti rmkx
+ }
+ zle -N zle-line-init
+ zle -N zle-line-finish
+fi
+
bindkey -e # Use emacs key bindings
bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark