bindkey -v
# Also use jj to exit insert mode.
-bindkey -M viins 'jj' vi-cmd-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
fi
# Prepend prefixes like in window_preexec().
+ if [[ -n $window_root ]]; then
+ name="!$name"
+ fi
if [[ -n $SSH_CONNECTION ]]; then
- window_title "@$name"
- elif [[ -n $window_root ]]; then
- window_title "!$name"
- else
- window_title $name
+ name="@$name"
fi
+ window_title $name
# Just reset the name, so no screen reset necessary for the moment.
window_reset=
window_title() {
print -n "\e]2;$1\e\\"
}
+ else
+ # Fallback if another TERM is used.
+ window_title() { }
fi
# Add the preexec() and precmd() hooks.