1
0
Fork 0
dotfiles/zsh/.zshrc

99 lines
2.1 KiB
Bash

#!/usr/bin/env zsh
# History
HISTFILE=~/.config/zsh/histfile
HISTSIZE=1000000
SAVEHIST=1000000
DIRSTACKSIZE=100
setopt appendhistory histignorespace histignoredups
setopt extendedglob nomatch
setopt autopushd pushdsilent pushdtohome
unsetopt beep autocd notify
bindkey -e
# Completion
zstyle ':completion:*' _expand completer _complete _ignored
zstyle ':completion:*' matcher-list '' 'l:|=* r:|=*' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**'
zstyle :compinstall filename "$HOME/.zshrc"
autoload -Uz compinit
compinit
# prompt
autoload -U colors
colors
autoload -U zmv
alias mmv='noglob zmv -W'
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey '^x^e' edit-command-line
if [[ $TERM =~ '256color' ]]; then
local blue="%F{12}"
local orange="%F{11}"
local purple="%F{13}"
local red="%F{9}"
local green="%F{10}"
local gray="%F{7}"
else
local blue="%{$fg[cyan]%}"
local orange="%{$fg[yellow]%}"
local purple="%{$fg[magenta]%}"
local red="%{$fg[red]%}"
local green="%{$fg[green]%}"
local gray="%{$fg[white]%}"
fi
function parse_git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "${colon}${orange}${ref#refs/heads/}%f"
}
local lbrkt="${gray}[%f"
local rbrkt="${gray}]%f"
local colon="${gray}:%f"
local user="${purple}%n%f"
if [[ $LOCAL_SESSION -eq 1 ]]; then
local host="${blue}%m%f"
local prompt="%# "
else
local host="${red}%m%f"
local prompt="${red}%#%f "
fi
local dir="${green}%~%f"
local branch="\$(parse_git_branch)"
local exit_code="%(?..${red}%?%f)"
setopt prompt_subst
export PROMPT="${lbrkt}${user}${colon}${host}${colon}${dir}${branch}${rbrkt} ${exit_code}
${prompt}"
export RPROMPT=''
# aliases
source $HOME/.zprofile
source $HOME/.config/zsh/aliases
source $HOME/.config/zsh/j.sh
autoload -U select-word-style
select-word-style bash
_has() {
command -V "$1" > /dev/null 2> /dev/null
}
_has direnv && eval "$(direnv hook zsh)" || true
FZF_CTRL_T_COMMAND=''
_has fzf && eval "$(fzf --zsh)" || true
_has zoxide && eval "$(zoxide init zsh)" || true
setopt interactivecomments
if [ -f "$HOME/.config/zsh/os.zshrc" ]; then
source "$HOME/.config/zsh/os.zshrc"
fi