99 lines
2.4 KiB
Bash
99 lines
2.4 KiB
Bash
|
unsetopt beep
|
||
|
# unsetopt AUTO_MENU
|
||
|
# setopt MENU_COMPLETE
|
||
|
# setopt AUTO_CD
|
||
|
|
||
|
# History
|
||
|
HISTFILE=~/.zsh_history
|
||
|
HISTSIZE=10000
|
||
|
SAVEHIST=10000
|
||
|
setopt HIST_IGNORE_ALL_DUPS
|
||
|
setopt EXTENDED_HISTORY
|
||
|
setopt APPEND_HISTORY
|
||
|
|
||
|
if [ -e "/usr/share/fzf" ]; then
|
||
|
source /usr/share/fzf/key-bindings.zsh
|
||
|
source /usr/share/fzf/completion.zsh
|
||
|
fi
|
||
|
|
||
|
### Aliases ---------------------------------------------
|
||
|
alias vim="nvim"
|
||
|
alias rm="rm -i"
|
||
|
alias mv="mv -i"
|
||
|
alias ls="exa --group-directories-first"
|
||
|
alias ll="ls -lh"
|
||
|
alias la="ls -lha"
|
||
|
alias grep="grep --color=auto"
|
||
|
alias less="less -r"
|
||
|
alias nnn="nnn -e"
|
||
|
[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
|
||
|
alias gs="git status"
|
||
|
alias gap="git add -p"
|
||
|
alias gc="git commit"
|
||
|
alias lg="lazygit"
|
||
|
### -----------------------------------------------------
|
||
|
|
||
|
# Fix keys
|
||
|
bindkey '^[[H' beginning-of-line
|
||
|
bindkey '^[[F' end-of-line
|
||
|
bindkey '^H' backward-delete-word
|
||
|
bindkey '^[[1;5D' backward-word
|
||
|
bindkey '^[[1;5C' forward-word
|
||
|
bindkey '^[[3~' delete-char
|
||
|
bindkey '^[[3;5~' delete-word
|
||
|
|
||
|
### zsh-autosuggestions
|
||
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#a6a6a6"
|
||
|
ZSH_AUTOSUGGEST_USE_ASYNC=1
|
||
|
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
|
||
|
zle -N autosuggest-accept
|
||
|
bindkey '^ ' autosuggest-accept
|
||
|
|
||
|
export ZISH_HOME=$HOME/.local/share/zish
|
||
|
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
|
||
|
export PATH="$PATH:$HOME/.local/bin"
|
||
|
|
||
|
install_plugin() {
|
||
|
IFS='/' read group project <<< "$1"
|
||
|
repo=$1
|
||
|
dir="$ZISH_HOME/repos/$repo"
|
||
|
shift
|
||
|
|
||
|
while [ $# -gt 0 ]; do
|
||
|
IFS=':' read action value <<< "$1"
|
||
|
case $action in
|
||
|
"build")
|
||
|
build=$value
|
||
|
;;
|
||
|
"use")
|
||
|
use=$dir/$value
|
||
|
;;
|
||
|
esac
|
||
|
shift
|
||
|
done
|
||
|
|
||
|
if [[ ! -d $dir ]]; then
|
||
|
mkdir -p $dir && cd $dir && git clone --depth=1 "https://github.com/$repo" .
|
||
|
[ -v build ] && eval $build
|
||
|
fi
|
||
|
|
||
|
[ -v use ] && source $use || source $dir/$project.plugin.zsh
|
||
|
}
|
||
|
|
||
|
install_plugin "zsh-users/zsh-syntax-highlighting"
|
||
|
install_plugin "zsh-users/zsh-autosuggestions"
|
||
|
install_plugin "zsh-users/zsh-completions"
|
||
|
install_plugin "trapd00r/LS_COLORS" build:"dircolors -b LS_COLORS > c.zsh" use:"c.zsh"
|
||
|
|
||
|
zstyle ":completion:*" list-colors ${(s.:.)LS_COLORS}
|
||
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
||
|
zstyle ':completion:*' menu select
|
||
|
|
||
|
autoload -U compinit
|
||
|
|
||
|
eval "$(zoxide init zsh)"
|
||
|
|
||
|
# starship prompt: https://github.com/starship/starship
|
||
|
# Must be at end of file
|
||
|
eval "$(starship init zsh)"
|