# --- Bindkeys # edit bindkey -M vicmd v edit-command-line bindkey '^p' push-line # search bindkey '^r' history-incremental-search-backward bindkey '^f' history-incremental-search-forward # completion bindkey '' reverse-menu-complete # terminfo typeset -A keys keys[Backspace]="${terminfo[kbs]}" keys[Delete]="${terminfo[kdch1]}" keys[Down]="${terminfo[kcud1]}" keys[End]="${terminfo[kend]}" keys[F1]="${terminfo[kf1]}" keys[Home]="${terminfo[khome]}" keys[Insert]="${terminfo[kich1]}" keys[Left]="${terminfo[kcub1]}" keys[PageDown]="${terminfo[knp]}" keys[PageUp]="${terminfo[kpp]}" keys[Right]="${terminfo[kcuf1]}" keys[ShiftTab]="${terminfo[kcbt]}" keys[Up]="${terminfo[kcuu1]}" # fixes for key in ${(k)keys}; do keys[$key]=${keys[$key]/O/[} done # vi style bindkey -v for mode in vicmd viins; do # terminfo [ -n "$keys[Backspace]" ] && bindkey -M "$mode" "$keys[Backspace]" vi-backward-delete-char [ -n "$keys[Delete]" ] && bindkey -M "$mode" "$keys[Delete]" vi-delete-char [ -n "$keys[Down]" ] && bindkey -M "$mode" "$keys[Down]" down-line-or-history [ -n "$keys[End]" ] && bindkey -M "$mode" "$keys[End]" vi-end-of-line [ -n "$keys[F1]" ] && bindkey -M "$mode" "$keys[F1]" run-help [ -n "$keys[Home]" ] && bindkey -M "$mode" "$keys[Home]" vi-beginning-of-line [ -n "$keys[Insert]" ] && bindkey -M "$mode" "$keys[Insert]" overwrite-mode [ -n "$keys[Left]" ] && bindkey -M "$mode" "$keys[Left]" vi-backward-char [ -n "$keys[PageDown]" ] && bindkey -M "$mode" "$keys[PageDown]" end-of-buffer-or-history [ -n "$keys[PageUp]" ] && bindkey -M "$mode" "$keys[PageUp]" beginning-of-buffer-or-history [ -n "$keys[Right]" ] && bindkey -M "$mode" "$keys[Right]" vi-forward-char [ -n "$keys[Up]" ] && bindkey -M "$mode" "$keys[Up]" up-line-or-history # terminals bindkey -M "$mode" '[3~' vi-delete-char bindkey -M "$mode" '' vi-delete-char bindkey -M "$mode" 'OB' down-line-or-history bindkey -M "$mode" '[8~' vi-end-of-line bindkey -M "$mode" '[4~' vi-end-of-line bindkey -M "$mode" 'OF' vi-end-of-line bindkey -M "$mode" '[1~' vi-beginning-of-line bindkey -M "$mode" '[7~' vi-beginning-of-line bindkey -M "$mode" '' vi-beginning-of-line bindkey -M "$mode" 'OH' vi-beginning-of-line bindkey -M "$mode" '[2~' overwrite-mode bindkey -M "$mode" '' overwrite-mode bindkey -M "$mode" 'OD' vi-backward-char bindkey -M "$mode" 'OC' vi-forward-char bindkey -M "$mode" 'OA' up-line-or-history bindkey -M "$mode" 'OP' run-help bindkey -M "$mode" '[11~' run-help done