X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/20c4ef4e3c48fb859e41a7fa2f286cd970907709..b4fdfa65e012f7f422a6e09088fc30b88c249aec:/etc/zsh/.zshrc diff --git a/etc/zsh/.zshrc b/etc/zsh/.zshrc index d1d10dd..bd670c2 100644 --- a/etc/zsh/.zshrc +++ b/etc/zsh/.zshrc @@ -1,11 +1,27 @@ ### options -setopt NO_BEEP NO_CLOBBER \ - AUTO_CD CDABLE_VARS \ - EXTENDED_GLOB GLOB_DOTS GLOB_STAR_SHORT MARK_DIRS NUMERIC_GLOB_SORT \ - CORRECT_ALL INTERACTIVE_COMMENTS \ - GLOB_COMPLETE \ - AUTO_CONTINUE LONG_LIST_JOBS \ - NO_HIST_SAVE_BY_COPY HIST_IGNORE_DUPS SHARE_HISTORY HIST_REDUCE_BLANKS +setopts=( + ## 16.2.1 Changing Directories + AUTO_CD CDABLE_VARS + ## 16.2.2 Completion + COMPLETE_IN_WORD GLOB_COMPLETE REC_EXACT + ## 16.2.3 Expansion and Globbing + EXTENDED_GLOB GLOB_DOTS GLOB_STAR_SHORT MAGIC_EQUAL_SUBST MARK_DIRS + NUMERIC_GLOB_SORT + ## 16.2.4 History + # NOTE: NO_HIST_SAVE_BY_COPY to allow saving histfile if updating another + # user's histfile. this is for compatibility with zsu. + HIST_FCNTL_LOCK HIST_IGNORE_DUPS HIST_IGNORE_SPACE HIST_LEX_WORDS + HIST_NO_STORE HIST_REDUCE_BLANKS NO_HIST_SAVE_BY_COPY SHARE_HISTORY + ## 16.2.6 Input/Output + NO_CLOBBER CLOBBER_EMPTY CORRECT_ALL INTERACTIVE_COMMENTS + HASH_EXECUTABLES_ONLY + ## 16.2.7 Job Control + AUTO_CONTINUE LONG_LIST_JOBS + ## 16.2.12 Zle + NO_BEEP +) +setopt $setopts +unset setopts ### exports ## common @@ -16,8 +32,8 @@ export PAGER=${$(whence -p less micro nano more)[(f)1]:s/micro/& -readonly true export GREP_OPTIONS=--color=auto ## histfile export HISTFILE=~/.histfile -export HISTSIZE=1000 -export SAVEHIST=1000 +export HISTSIZE=10000 +export SAVEHIST=$HISTSIZE ## python export PYTHONSTARTUP=${XDG_CONFIG_HOME:-~/.config}/pythonrc ## vim @@ -202,6 +218,7 @@ alias se=sudoedit # be paranoid alias cp='cp -ip' alias mv='mv -i' +# zsh zmv with noglob wildcards alias zm='noglob zmv -WiM' alias zc='noglob zmv -WiC' alias zl='noglob zmv -WiL' @@ -216,10 +233,7 @@ if [[ "$OSTYPE" =~ '^freebsd' ]] { alias rm='rm -i' } [[ -v commands[trash-put] ]] && alias t=trash-put -## py venv -alias va='source bin/activate' -alias vd=deactivate -## ps +# ps source ~/.local/bin/.check-busybox if [[ -v commands[pstree] ]] && ! check-busybox pstree; then # use pstree, but NOT busybox pstree because it kinda sucks @@ -247,7 +261,11 @@ if [[ "$(basename "$PAGER")" = "less" ]] { alias pa=$ps alias spa="sudo $ps" unset ps +## py venv +alias va='source bin/activate' +alias vd=deactivate ## git +alias g=git alias gd='git diff' alias gdh='git diff HEAD' alias ga='git add' @@ -256,6 +274,8 @@ alias gc='git commit' alias gca='git commit --amend' alias gp='git push' alias gu='git pull' +alias gl='git log' +alias gt='git tree' # from gitconfig ## cd/zoxide function up { \cd $(printf '../%.0s' {1..${1:-1}}) @@ -268,16 +288,26 @@ if [[ -v commands[zoxide] ]] { } alias cd..=up ## dotfiles -alias dfu='d=${$(echo -E - ~/.zshenv):P:h:h};GIT_DIR=$d/.git GIT_WORK_TREE=$d { - git pull && - git submodules init && - git submodules sync && - git submodules update +alias dfu=' function { + local d=${$(echo -E - ~/.zshenv):P:h:h} + local -x GIT_DIR=$d/.git GIT_WORK_TREE=$d + git pull && + git submodule init && + git submodule sync && + git submodule update }' +## nocorrect +# zsh doesnt really handle sudo very well, so ignore it +alias sudo='nocorrect sudo' +## docker compose +alias dcp='sudo docker compose pull' +alias dcu='sudo docker compose up -d' +alias dcr='sudo docker compose restart' +alias dcl='sudo docker compose logs -f' ### hooks autoload -Uz add-zsh-hook -_sev_exectime= +typeset -gi _sev_exectime function sev_preexec { # change terminal title to show command print -n "\e]2;$(print -P '%#')${SSH_CLIENT+$USER@$HOST:}$1\e\\"