This commit is contained in:
231
zshrc
Normal file
231
zshrc
Normal file
@@ -0,0 +1,231 @@
|
||||
# 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 autoresume
|
||||
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 ..<TAB>" -> "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
|
Reference in New Issue
Block a user