# read bash.bashrc first for some features we dont want # to re-implement here source /etc/bash.bashrc # zsh line editing : ${ZSHEDIT:="emacs"} : ${TERM:=linux} if [[ "$ZSHEDIT" == "vi" ]] then bindkey -v else bindkey -e bindkey "^[ " magic-space bindkey "^[!" expand-history fi # Environment HISTSIZE=1000 HISTFILE=${HOME}/.zsh_history SAVEHIST=500 # Prompt on the right side. zsh feature #RPROMPT="[%T]" # Set/unset shell options setopt globdots nocorrect pushdtohome autolist nopromptcr setopt nocorrectall autocd recexact longlistjobs setopt histignoredups pushdsilent appendhistory histexpiredupsfirst setopt autopushd pushdminus extendedglob rcquotes unsetopt bgnice autoparamslash hup # Setup some basic programmable completions. To see more examples # of these, check out /usr/doc/packages/zsh/compctl-examples. # You you have a slow machine, you might want to comment the lines below # with compctl in, and comment the below two lines out. # # compctl -g '*(-/)' cd pushd # compctl -g '*(/)' rmdir dircmp # compctl -j -P % -x 's[-] p[1]' -k signals -- kill # compctl -j -P % fg bg wait jobs disown # compctl -A shift # compctl -caF type whence which # compctl -F unfunction # compctl -a unalias # compctl -v unset typeset declare vared readonly export integer # compctl -e disable # compctl -d enable # # The default way is the usage of the zsh built-in completer # Comment the two below lines out, if you are on a slow machine, and # comment the above compctl lines in. autoload -U compinit compinit # Completion so "cd .." -> "cd ../" # zstyle ':completion:*' special-dirs .. # Online help unalias run-help 2>/dev/null || true autoload run-help # Don't use zsh builtin which alias which >/dev/null && unalias which # Common standard keypad and cursor bindkey "^[[2~" yank bindkey "^[[3~" delete-char # History completion on pgup and pgdown autoload -U history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^[[5~" history-beginning-search-backward-end bindkey "^[[6~" history-beginning-search-forward-end if [[ "$TERM" == "xterm" ]] then bindkey "^[2;5~" yank bindkey "^[3;5~" delete-char bindkey "^[5;5~" up-history bindkey "^[6;5~" down-history fi 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 bindkey "^[O5H" beginning-of-line bindkey "^[O5F" end-of-line else if [[ "$TERM" == "kvt" ]] then bindkey "^[[1~" history-search-backward bindkey "^[[4~" set-mark-command 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 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 "^[OQ" undo bindkey "^[OR" undefined-key bindkey "^[OS" kill-line fi if [[ "$TERM" == "gnome" ]] then # or gnome terminal F1 - F4 bindkey -s "^[OP" "^[" bindkey "^[OQ" undo 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" "+" bindkey -s "^[Ol" "," bindkey -s "^[OM" "\n" 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