# $Id$ # # zsh line editing (from SuSE) # : ${ZSHEDIT:="emacs"} #: ${TERM:=linux} [[ -t 0 ]] && stty erase  if [[ "$ZSHEDIT" == "vi" ]] then bindkey -v else bindkey -e bindkey "^[ " magic-space bindkey "^[!" expand-history fi # # Common standard keypad and cursor # bindkey "^[[2~" yank bindkey "^[[3~" delete-char bindkey "^[[5~" up-history bindkey "^[[6~" down-history bindkey "^[[C" forward-char bindkey "^[[D" backward-char bindkey "^[[A" up-history bindkey "^[[B" down-history # # Avoid network problems # ... \177 (ASCII-DEL) and \010 (ASCII-BS) # do `backward-delete-char' # Note: `delete-char' is maped to \033[3~ # Therefore xterm's responce on pressing # key Delete or KP-Delete should be # \033[3~ ... NOT \177 # bindkey "^?" backward-delete-char bindkey "^H" backward-delete-char # # Home and End # if [[ "$TERM" == "xterm" ]] then # # Normal keypad and cursor of xterm # bindkey "^[[1~" history-search-backward bindkey "^[[4~" set-mark-command bindkey "^[[H" beginning-of-line bindkey "^[[F" end-of-line # Home and End of application keypad and cursor of xterm bindkey "^[OH" beginning-of-line bindkey "^[OF" end-of-line else # # TERM=linux or console # bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line fi # # Application keypad and cursor of xterm # if [[ "$TERM" == "xterm" ]] then bindkey "^[OD" backward-char bindkey "^[OC" forward-char bindkey "^[OA" up-history bindkey "^[OB" down-history # DEC keyboard KP_F1 - KP_F4 bindkey -s "^[OP" "^[" bindkey -s "^[OQ" "^[OA^[OB" bindkey "^[OR" undefined-key bindkey "^[OS" kill-line fi # # Function keys F1 - F12 # if [[ "$TERM" == "linux" ]] then # # On console the first five function keys # bindkey "^[[[A" undefined-key bindkey "^[[[B" undefined-key bindkey "^[[[C" undefined-key bindkey "^[[[D" undefined-key bindkey "^[[[E" undefined-key else # # The first five standard function keys # bindkey "^[[11~" undefined-key bindkey "^[[12~" undefined-key bindkey "^[[13~" undefined-key bindkey "^[[14~" undefined-key bindkey "^[[15~" undefined-key fi bindkey "^[[17~" undefined-key bindkey "^[[18~" undefined-key bindkey "^[[19~" undefined-key bindkey "^[[20~" undefined-key bindkey "^[[21~" undefined-key # Note: F11, F12 are identical with Shift_F1 and Shift_F2 bindkey "^[[23~" undefined-key bindkey "^[[24~" undefined-key # # Shift Function keys F1 - F12 # identical with F11 - F22 # # bindkey "^[[23~" undefined-key # bindkey "^[[24~" undefined-key bindkey "^[[25~" undefined-key bindkey "^[[26~" undefined-key # DEC keyboard: F15=^[[28~ is Help bindkey "^[[28~" undefined-key # DEC keyboard: F16=^[[29~ is Menu bindkey "^[[29~" undefined-key bindkey "^[[31~" undefined-key bindkey "^[[32~" undefined-key bindkey "^[[33~" undefined-key bindkey "^[[34~" undefined-key if [[ "$TERM" == "xterm" ]] then # Not common bindkey "^[[35~" undefined-key bindkey "^[[36~" undefined-key fi # if [[ "$TERM" == "xterm" ]] then # # Application keypad and cursor of xterm # with NumLock ON # # Operators bindkey -s "^[Oo" "/" bindkey -s "^[Oj" "*" bindkey -s "^[Om" "-" bindkey -s "^[Ok" "+" # Change in xterm X11R6.3 bindkey -s "^[Ol" "+" bindkey -s "^[OM" "\n" # Colon and dot # bindkey -s "^[Ol" "," bindkey -s "^[On" "." # Numbers bindkey -s "^[Op" "0" bindkey -s "^[Oq" "1" bindkey -s "^[Or" "2" bindkey -s "^[Os" "3" bindkey -s "^[Ot" "4" bindkey -s "^[Ou" "5" bindkey -s "^[Ov" "6" bindkey -s "^[Ow" "7" bindkey -s "^[Ox" "8" bindkey -s "^[Oy" "9" fi # # EMACS line editing # if [[ "$ZSHEDIT" == "emacs" ]] then # # ... xterm application cursor # if [[ "$TERM" == "xterm" ]] then bindkey "^[^[OD" backward-word bindkey "^[^[OC" forward-word bindkey "^[^[OA" up-history bindkey "^[^[OB" down-history bindkey "^^[OD" backward-char bindkey "^^[OC" forward-char bindkey "^^[OA" up-history bindkey "^^[OB" down-history fi # # Standard cursor # bindkey "^[^[[D" backward-word bindkey "^[^[[C" forward-word bindkey "^[^[[A" up-history bindkey "^[^[[B" down-history bindkey "^^[[D" backward-char bindkey "^^[[C" forward-char bindkey "^^[[A" up-history bindkey "^^[[B" down-history fi # # end key binding #