# Use Vi(m) style key bindings.
bindkey -v
+# Also use jj to exit insert mode.
+bindkey 'jj' vi-cmd-mode
+
# I don't need the arrow keys, I use ^N and ^P for this (see below).
-bindkey -M viins -r '^[OA'
-bindkey -M viins -r '^[OB'
-bindkey -M viins -r '^[OC'
-bindkey -M viins -r '^[OD'
-bindkey -M viins -r '^[[A'
-bindkey -M viins -r '^[[B'
-bindkey -M viins -r '^[[C'
-bindkey -M viins -r '^[[D'
+bindkey -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D'
# Also not in Vi mode.
-bindkey -M vicmd -r '^[OA'
-bindkey -M vicmd -r '^[OB'
-bindkey -M vicmd -r '^[OC'
-bindkey -M vicmd -r '^[OD'
-bindkey -M vicmd -r '^[[A'
-bindkey -M vicmd -r '^[[B'
-bindkey -M vicmd -r '^[[C'
-bindkey -M vicmd -r '^[[D'
+bindkey -a -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D'
# FUNCTION SETTINGS
window_title() {
print -n "\e]2;$1\e\\"
}
+ else
+ # Fallback if another TERM is used.
+ window_title() { }
fi
# Add the preexec() and precmd() hooks.