From 35b1cd838a36df2a64054c73cb25242f496a4af6 Mon Sep 17 00:00:00 2001 From: pztrn Date: Thu, 2 Jul 2015 21:06:41 +0500 Subject: [PATCH] Keybinding reworked. Now should work almost everywhere. --- zsh/30-keys.zsh | 78 +++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/zsh/30-keys.zsh b/zsh/30-keys.zsh index 6d969a2..6549dcc 100644 --- a/zsh/30-keys.zsh +++ b/zsh/30-keys.zsh @@ -20,41 +20,43 @@ fi autoload -U select-word-style select-word-style bash -#bindkey -e # Use emacs key bindings -bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark -bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls -bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line. -if [[ "${terminfo[kpp]}" != "" ]]; then - bindkey "${terminfo[kpp]}" up-line-or-history # [PageUp] - Up a line of history -fi -if [[ "${terminfo[knp]}" != "" ]]; then - bindkey "${terminfo[knp]}" down-line-or-history # [PageDown] - Down a line of history -fi -if [[ "${terminfo[kcuu1]}" != "" ]]; then - bindkey "${terminfo[kcuu1]}" up-line-or-search # start typing + [Up-Arrow] - fuzzy find history forward -fi -if [[ "${terminfo[kcud1]}" != "" ]]; then - bindkey "${terminfo[kcud1]}" down-line-or-search # start typing + [Down-Arrow] - fuzzy find history backward -fi -if [[ "${terminfo[khome]}" != "" ]]; then - bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line -fi -if [[ "${terminfo[kend]}" != "" ]]; then - bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line -fi - bindkey ' ' magic-space # [Space] - do history expansion - bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word - bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word - bindkey '^[[1;3C' forward-word # [ALT-RightArrow] - move forward one word - bindkey '^[[1;3D' backward-word # [ALT-LeftArrow] - move backward one word -if [[ "${terminfo[kcbt]}" != "" ]]; then - bindkey "${terminfo[kcbt]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards -fi - bindkey '^?' backward-delete-char # [Backspace] - delete backward -if [[ "${terminfo[kdch1]}" != "" ]]; then - bindkey "${terminfo[kdch1]}" delete-char # [Delete] - delete forward -else - bindkey "^[[3~" delete-char - bindkey "^[3;5~" delete-char - bindkey "\e[3~" delete-char -fi +case "${TERM}" in + cons25*|linux) # plain BSD/Linux console + bindkey '\e[H' beginning-of-line # home + bindkey '\e[F' end-of-line # end + bindkey '\e[5~' delete-char # delete + bindkey '[D' emacs-backward-word # esc left + bindkey '[C' emacs-forward-word # esc right + ;; + *rxvt*) # rxvt derivatives + bindkey '\e[3~' delete-char # delete + bindkey '\eOc' forward-word # ctrl right + bindkey '\eOd' backward-word # ctrl left + bindkey '\e\e[D' backward-word ### Alt left + bindkey '\e\e[C' forward-word ### Alt right + # workaround for screen + urxvt + bindkey '\e[7~' beginning-of-line # home + bindkey '\e[8~' end-of-line # end + bindkey '^[[1~' beginning-of-line # home + bindkey '^[[4~' end-of-line # end + ;; + *xterm*) # xterm derivatives + bindkey '\e[H' beginning-of-line # home + bindkey '\e[F' end-of-line # end + bindkey '\e[3~' delete-char # delete + bindkey '\e[1;5C' forward-word # ctrl right + bindkey '\e[1;5D' backward-word # ctrl left + # workaround for screen + xterm + bindkey '\e[1~' beginning-of-line # home + bindkey '\e[4~' end-of-line # end + ;; + 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