diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..2e06d62 --- /dev/null +++ b/.zshrc @@ -0,0 +1,70 @@ + + +# Set the directory we want to store zinit and plugins +ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/shere}/zinit/zinit.git" + +# Download Zinit, if it's not there yet +if [ ! -d "$ZINIT_HOME" ]; then + mkdir -p "$(dirname $ZINIT_HOME)" + git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" +fi + +# Source/Load zinit +source "${ZINIT_HOME}/zinit.zsh" + +# Add in zsh plugins +zinit light zsh-users/zsh-syntax-highlighting +zinit light zsh-users/zsh-completions +zinit light zsh-users/zsh-autosuggestions +zinit light Aloxaf/fzf-tab + +# Add in snippets +zinit snippet OMZP::git +zinit snippet OMZP::sudo +zinit snippet OMZP::archlinux +zinit snippet OMZP::command-not-found + +# Load completions +autoload -U compinit && compinit + +zinit cdreplay -q + +eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)" + +# Keybinds +bindkey '^p' history-search-backward +bindkey '^n' history-search-forward + +# History +HISTSIZE=5000 +HISTFILE=~/.zsh_history +SAVEHIST=$HISTSIZE +HISTDUP=erase +setopt appendhistory +setopt sharehistory +setopt hist_ignore_space +setopt hist_ignore_all_dups +setopt hist_save_no_dups +setopt hist_ignore_dups +setopt hist_find_no_dups + +# Completion styling +zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' +zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" +zstyle ':completion:*' menu no +zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath' +zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath' + +# Aliases +alias ls='ls --color' +alias vi='nvim' +alias vim='nvim' +alias nvim='nvim' +alias c='clear' + +# Shell integrations +eval "$(fzf --zsh)" +eval "$(zoxide init --cmd cd zsh)" + +source /usr/share/nvm/init-nvm.sh +