You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.8 KiB
Bash
113 lines
3.8 KiB
Bash
# /etc/zsh/zshrc: system-wide .zshrc file for zsh(1).
|
|
#
|
|
# This file is sourced only for interactive shells. It
|
|
# should contain commands to set up aliases, functions,
|
|
# options, key bindings, etc.
|
|
#
|
|
# Global Order: zshenv, zprofile, zshrc, zlogin
|
|
|
|
READNULLCMD=${PAGER:-/usr/bin/pager}
|
|
|
|
# An array to note missing features to ease diagnosis in case of problems.
|
|
typeset -ga debian_missing_features
|
|
|
|
if [[ -z "${DEBIAN_PREVENT_KEYBOARD_CHANGES-}" ]] &&
|
|
[[ "$TERM" != 'emacs' ]]
|
|
then
|
|
|
|
typeset -A key
|
|
key=(
|
|
BackSpace "${terminfo[kbs]}"
|
|
Home "${terminfo[khome]}"
|
|
End "${terminfo[kend]}"
|
|
Insert "${terminfo[kich1]}"
|
|
Delete "${terminfo[kdch1]}"
|
|
Up "${terminfo[kcuu1]}"
|
|
Down "${terminfo[kcud1]}"
|
|
Left "${terminfo[kcub1]}"
|
|
Right "${terminfo[kcuf1]}"
|
|
PageUp "${terminfo[kpp]}"
|
|
PageDown "${terminfo[knp]}"
|
|
)
|
|
|
|
function bind2maps () {
|
|
local i sequence widget
|
|
local -a maps
|
|
|
|
while [[ "$1" != "--" ]]; do
|
|
maps+=( "$1" )
|
|
shift
|
|
done
|
|
shift
|
|
|
|
sequence="${key[$1]}"
|
|
widget="$2"
|
|
|
|
[[ -z "$sequence" ]] && return 1
|
|
|
|
for i in "${maps[@]}"; do
|
|
bindkey -M "$i" "$sequence" "$widget"
|
|
done
|
|
}
|
|
|
|
bind2maps emacs -- BackSpace backward-delete-char
|
|
bind2maps viins -- BackSpace vi-backward-delete-char
|
|
bind2maps vicmd -- BackSpace vi-backward-char
|
|
bind2maps emacs -- Home beginning-of-line
|
|
bind2maps viins vicmd -- Home vi-beginning-of-line
|
|
bind2maps emacs -- End end-of-line
|
|
bind2maps viins vicmd -- End vi-end-of-line
|
|
bind2maps emacs viins -- Insert overwrite-mode
|
|
bind2maps vicmd -- Insert vi-insert
|
|
bind2maps emacs -- Delete delete-char
|
|
bind2maps viins vicmd -- Delete vi-delete-char
|
|
bind2maps emacs viins vicmd -- Up up-line-or-history
|
|
bind2maps emacs viins vicmd -- Down down-line-or-history
|
|
bind2maps emacs -- Left backward-char
|
|
bind2maps viins vicmd -- Left vi-backward-char
|
|
bind2maps emacs -- Right forward-char
|
|
bind2maps viins vicmd -- Right vi-forward-char
|
|
|
|
# Make sure the terminal is in application mode, when zle is
|
|
# active. Only then are the values from $terminfo valid.
|
|
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
|
function zle-line-init () {
|
|
emulate -L zsh
|
|
printf '%s' ${terminfo[smkx]}
|
|
}
|
|
function zle-line-finish () {
|
|
emulate -L zsh
|
|
printf '%s' ${terminfo[rmkx]}
|
|
}
|
|
zle -N zle-line-init
|
|
zle -N zle-line-finish
|
|
else
|
|
for i in {s,r}mkx; do
|
|
(( ${+terminfo[$i]} )) || debian_missing_features+=($i)
|
|
done
|
|
unset i
|
|
fi
|
|
|
|
unfunction bind2maps
|
|
|
|
fi # [[ -z "$DEBIAN_PREVENT_KEYBOARD_CHANGES" ]] && [[ "$TERM" != 'emacs' ]]
|
|
|
|
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \
|
|
/usr/local/bin \
|
|
/usr/sbin \
|
|
/usr/bin \
|
|
/sbin \
|
|
/bin \
|
|
/usr/X11R6/bin
|
|
|
|
(( ${+aliases[run-help]} )) && unalias run-help
|
|
autoload -Uz run-help
|
|
|
|
# If you don't want compinit called here, place the line
|
|
# skip_global_compinit=1
|
|
# in your $ZDOTDIR/.zshenv
|
|
if grep -q '^ID.*=.*ubuntu' /etc/os-release && [[ -z "$skip_global_compinit" ]]; then
|
|
autoload -U compinit
|
|
compinit
|
|
fi
|