Created
June 16, 2024 16:25
-
-
Save pandemicsyn/13313ae832e77fe5199fe525b64ad8ec to your computer and use it in GitHub Desktop.
my basic zsh config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Setup Preferred editor for local and remote sessions | |
if [[ -n $SSH_CONNECTION ]]; then | |
export EDITOR='vim' | |
else | |
export EDITOR='nvim' | |
fi | |
# Setup fnm | |
eval "$(fnm env)" | |
# Setup fzf | |
source <(fzf --zsh) | |
# Setup oh-my-posh | |
if [ "$TERM_PROGRAM" != "Apple_Terminal" ]; then | |
eval "$(oh-my-posh init zsh --config $(brew --prefix oh-my-posh)/themes/tokyonight_storm.omp.json)" | |
fi | |
# history config borrowed from oh-my-zsh | |
## History wrapper | |
function omz_history { | |
# parse arguments and remove from $@ | |
local clear list stamp REPLY | |
zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp t:=stamp | |
if [[ -n "$clear" ]]; then | |
# if -c provided, clobber the history file | |
# confirm action before deleting history | |
print -nu2 "This action will irreversibly delete your command history. Are you sure? [y/N] " | |
builtin read -k1 | |
[[ "$REPLY" = $'\n' ]] || print -u2 | |
[[ "$REPLY" != ([yY]) ]] && return 0 | |
print -nu2 >| "$HISTFILE" | |
fc -p "$HISTFILE" | |
print -u2 History file deleted. | |
elif [[ $# -eq 0 ]]; then | |
# if no arguments provided, show full history starting from 1 | |
builtin fc $stamp -l 1 | |
else | |
# otherwise, run `fc -l` with a custom format | |
builtin fc $stamp -l "$@" | |
fi | |
} | |
# Timestamp format | |
case ${HIST_STAMPS-} in | |
"mm/dd/yyyy") alias history='omz_history -f' ;; | |
"dd.mm.yyyy") alias history='omz_history -E' ;; | |
"yyyy-mm-dd") alias history='omz_history -i' ;; | |
"") alias history='omz_history' ;; | |
*) alias history="omz_history -t '$HIST_STAMPS'" ;; | |
esac | |
## History file configuration | |
[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history" | |
[ "$HISTSIZE" -lt 50000 ] && HISTSIZE=50000 | |
[ "$SAVEHIST" -lt 10000 ] && SAVEHIST=10000 | |
## History command configuration | |
setopt extended_history # record timestamp of command in HISTFILE | |
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 | |
# Setup zoxide | |
eval "$(zoxide init --cmd cd zsh)" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment