Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Borrowed from Arch Linux wiki
- # create a zkbd compatible hash;
- # to add other keys to this hash, see: man 5 terminfo
- typeset -g -A key
- key[Home]="${terminfo[khome]}"
- key[End]="${terminfo[kend]}"
- key[Insert]="${terminfo[kich1]}"
- key[Backspace]="${terminfo[kbs]}"
- key[Delete]="${terminfo[kdch1]}"
- key[Up]="${terminfo[kcuu1]}"
- key[Down]="${terminfo[kcud1]}"
- key[Left]="${terminfo[kcub1]}"
- key[Right]="${terminfo[kcuf1]}"
- key[PageUp]="${terminfo[kpp]}"
- key[PageDown]="${terminfo[knp]}"
- key[ShiftTab]="${terminfo[kcbt]}"
- # setup key accordingly
- [[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
- [[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
- [[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
- [[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
- [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
- [[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history
- [[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history
- #[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" history-search-backward # i miss up-line
- #[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" history-search-forward
- [[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
- [[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
- [[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
- [[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
- [[ -n "${key[ShiftTab]}" ]] && bindkey -- "${key[ShiftTab]}" reverse-menu-complete
- # Finally, make sure the terminal is in application mode, when zle is
- # active. Only then are the values from $terminfo valid.
- #if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
- # autoload -Uz add-zle-hook-widget
- # function zle_application_mode_start {
- # echoti smkx
- # }
- # function zle_application_mode_stop {
- # echoti rmkx
- # }
- # add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
- # add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
- #fi
- ### Same but for older zsh versions
- function zle-line-init () {
- if (( ${+terminfo[smkx]} )); then
- echoti smkx
- fi
- }
- function zle-line-finish () {
- if (( ${+terminfo[rmkx]} )); then
- echoti rmkx
- fi
- }
- zle -N zle-line-init
- zle -N zle-line-finish
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement