126 lines
5.1 KiB
Bash
126 lines
5.1 KiB
Bash
# ~/.zshrc file for zsh interactive shells.
|
||
# see /usr/share/doc/zsh/examples/zshrc for examples
|
||
|
||
# You should install some packages:
|
||
# sudo apt install zsh zsh-syntax-highlighting zsh-autosuggestions qterminal fonts-firacode
|
||
#
|
||
|
||
setopt autocd # change directory just by typing its name
|
||
#setopt correct # auto correct mistakes
|
||
setopt interactivecomments # allow comments in interactive mode
|
||
setopt magicequalsubst # enable filename expansion for arguments of the form ‘anything=expression’
|
||
setopt nonomatch # hide error message if there is no match for the pattern
|
||
setopt notify # report the status of background jobs immediately
|
||
setopt numericglobsort # sort filenames numerically when it makes sense
|
||
setopt promptsubst # enable command substitution in prompt
|
||
|
||
WORDCHARS=${WORDCHARS//\/} # Don't consider certain characters part of the word
|
||
|
||
# hide EOL sign ('%')
|
||
PROMPT_EOL_MARK=""
|
||
|
||
# configure key keybindings - Identify keys with: sudo showkey -a
|
||
bindkey -e # emacs key bindings
|
||
bindkey ' ' magic-space # do history expansion on space
|
||
bindkey '^U' backward-kill-line # ctrl + U
|
||
bindkey '^[[3;5~' kill-word # ctrl + Supr
|
||
bindkey '^[[3~' delete-char # delete
|
||
bindkey '^[[1;5C' forward-word # ctrl + ->
|
||
bindkey '^[[1;5D' backward-word # ctrl + <-
|
||
bindkey '^[[5~' beginning-of-buffer-or-history # page up
|
||
bindkey '^[[6~' end-of-buffer-or-history # page down
|
||
bindkey "^[[H" beginning-of-line # home
|
||
bindkey "^[[1~" beginning-of-line # home
|
||
bindkey "^[[4~" end-of-line # end
|
||
bindkey "^[[F" end-of-line # end
|
||
bindkey '^[[Z' undo # shift + tab undo last action
|
||
|
||
# enable completion features
|
||
autoload -Uz compinit
|
||
compinit -d ~/.cache/zcompdump
|
||
zstyle ':completion:*:*:*:*:*' menu select
|
||
zstyle ':completion:*' auto-description 'specify: %d'
|
||
zstyle ':completion:*' completer _expand _complete
|
||
zstyle ':completion:*' format 'Completing %d'
|
||
zstyle ':completion:*' group-name ''
|
||
zstyle ':completion:*' list-colors ''
|
||
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
|
||
#zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
||
zstyle ':completion:*' rehash true
|
||
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
||
zstyle ':completion:*' use-compctl false
|
||
zstyle ':completion:*' verbose true
|
||
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
|
||
zstyle ':completion:*' special-dirs true
|
||
|
||
# History configurations
|
||
HISTFILE=~/.zsh_history
|
||
HISTSIZE=1000
|
||
SAVEHIST=2000
|
||
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
|
||
setopt hist_ignore_dups # ignore duplicated commands history list
|
||
setopt hist_ignore_space # ignore commands that start with space
|
||
setopt hist_verify # show command with history expansion to user before running it
|
||
#setopt share_history # share command history data
|
||
|
||
# force zsh to show the complete history
|
||
alias history="history 0"
|
||
|
||
# configure `time` format
|
||
TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P'
|
||
|
||
# make less more friendly for non-text input files, see lesspipe(1)
|
||
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||
|
||
# enable color support of ls, less and man, and also add handy aliases
|
||
if [ -x /usr/bin/dircolors ]; then
|
||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||
export LS_COLORS="$LS_COLORS:ow=30;44:" # fix ls color for folders with 777 permissions
|
||
|
||
alias ls='ls --color=auto'
|
||
#alias dir='dir --color=auto'
|
||
#alias vdir='vdir --color=auto'
|
||
|
||
alias grep='grep --color=auto'
|
||
alias fgrep='fgrep --color=auto'
|
||
alias egrep='egrep --color=auto'
|
||
alias diff='diff --color=auto'
|
||
alias ip='ip --color=auto'
|
||
|
||
#export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink
|
||
#export LESS_TERMCAP_md=$'\E[1;36m' # begin bold
|
||
#export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink
|
||
#export LESS_TERMCAP_so=$'\E[01;33m' # begin reverse video
|
||
#export LESS_TERMCAP_se=$'\E[0m' # reset reverse video
|
||
#export LESS_TERMCAP_us=$'\E[1;32m' # begin underline
|
||
#export LESS_TERMCAP_ue=$'\E[0m' # reset underline
|
||
|
||
# Take advantage of $LS_COLORS for completion as well
|
||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
|
||
fi
|
||
|
||
# some more ls aliases
|
||
alias ll='ls -l'
|
||
alias la='ls -A'
|
||
alias l='ls -CF'
|
||
|
||
# set zsh plugin base directory
|
||
if [ -d /usr/share/zsh/plugins ]; then
|
||
export ZSH_PLUGIN_BASE="/usr/share/zsh/plugins"
|
||
else
|
||
export ZSH_PLUGIN_BASE="/usr/share"
|
||
fi
|
||
|
||
# You may want to put all your additions into a folder file like
|
||
# ~/.config_files/zshrc.d, instead of adding them here directly.
|
||
for file in ~/.zshrc.d/*.zsh; do
|
||
source "$file"
|
||
done
|
||
|
||
# enable command-not-found if installed
|
||
if [ -f /etc/zsh_command_not_found ]; then
|
||
. /etc/zsh_command_not_found
|
||
fi
|
||
compinit
|