diff --git a/dot_zsh/configs/keybindings.zsh b/dot_zsh/configs/keybindings.zsh new file mode 100644 index 0000000..9416a81 --- /dev/null +++ b/dot_zsh/configs/keybindings.zsh @@ -0,0 +1,38 @@ +# bindkey -v # vim bindings + +# History Mapping +bindkey '^[[A' up-line-or-search +bindkey '^[[B' down-line-or-search +bindkey '^R' history-incremental-search-backward + +# Use Shift+Tab for reverse completion +bindkey '^[[Z' reverse-menu-complete + +# Use Alt+. for last argument +bindkey '\e.' insert-last-word + +case "${TERM}" in + (cons25*|linux) + bindkey '^[[1~' beginning-of-line # HOME + bindkey '^[[4~' end-of-line # END + bindkey '\e[5~' delete-char # DELETE + ;; + (*xterm*) + bindkey '\e[H' beginning-of-line # HOME + bindkey '\e[F' end-of-line # END + bindkey '\e[1~' beginning-of-line # HOME (Workaround for screen under tmux) + bindkey '\e[4~' end-of-line # END (Workaround for screen under tmux) + bindkey '\e[3~' delete-char # DELETE + bindkey '\e[1;5C' forward-word # CTRL+RIGHT + bindkey '\e[1;5D' backward-word # CTRL+LEFT + ;; + (screen*) + bindkey '^[[1~' beginning-of-line # HOME + bindkey '^[[4~' end-of-line # END + bindkey '\e[3~' delete-char # DELETE + bindkey '\eOc' forward-word # CTRL+RIGHT + bindkey '\eOd' backward-word # CTRL+LEFT + bindkey '^[[1;5C' forward-word # CTRL+RIGHT + bindkey '^[[1;5D' backward-word # CTRL+LEFT + ;; +esac diff --git a/dot_zsh/configs/keybindings.zsh.tmpl b/dot_zsh/configs/keybindings.zsh.tmpl deleted file mode 100644 index 8d680bf..0000000 --- a/dot_zsh/configs/keybindings.zsh.tmpl +++ /dev/null @@ -1,36 +0,0 @@ -bindkey -v # vim bindings - -# Correct various commond binding issues -bindkey '\e[3~' delete-char - -# Home/End keys -bindkey '\e[1~' beginning-of-line -bindkey '\e[4~' end-of-line -bindkey '\e[H' beginning-of-line -bindkey '\e[F' end-of-line - -# Ctrl + arrow to go back/forward a word at a time in a command -bindkey '\e[1;5D' backward-word -bindkey '\e[1;5C' forward-word - -# -# Search history with partial completion -# -autoload -Uz up-line-or-beginning-search down-line-or-beginning-search -zle -N up-line-or-beginning-search -zle -N down-line-or-beginning-search - -{{ if (eq .chezmoi.os "darwin") }} - bindkey '^[[A' history-beginning-search-backward - bindkey '^[[B' history-beginning-search-forward -{{ else if (eq .chezmoi.os "linux") }} - [[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word - [[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word - [[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search - [[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search -{{- end }} - -bindkey '\e[A' up-line-or-beginning-search -bindkey '\e[B' down-line-or-beginning-search - -bindkey '^R' history-incremental-search-backward