X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/c0bfd3fedf1593ca2878e53b176b625a87b7f097..e45f1c9997c041ec46ec7000f4b4e537eff22ac7:/etc/zsh/.zshrc?ds=inline diff --git a/etc/zsh/.zshrc b/etc/zsh/.zshrc index 21b5964..4d88417 100644 --- a/etc/zsh/.zshrc +++ b/etc/zsh/.zshrc @@ -200,6 +200,20 @@ for k v (${(kv)a}) { } unset a k v +## fzf +# bash-style reverse-search-history (i.e. reverse-i-search) +if [[ -v commands[fzf] ]] { + function _history-incremental-pattern-search-fzf { + l=(${(f)"$(fc -li -1 0 | fzf -emn 1 +s --preview-window=hidden ${BUFFER:+-q $BUFFER})"}) + l=$(for x ("${l[@]}") { echo ${${=x}:3}; }) + BUFFER="$l" + } + zle -N _history-incremental-pattern-search-fzf + bindkey '^R' _history-incremental-pattern-search-fzf +} else { + bindkey '^R' history-incremental-pattern-search-backward +} + ### aliases ## builtins alias rehash='_sev_setpath; rehash' @@ -244,10 +258,10 @@ if [[ "$OSTYPE" =~ '^freebsd' ]] { # ps if [[ -v commands[pstree] && $commands[pstree]:A:t != busybox ]] { # use pstree, but NOT busybox pstree because it kinda sucks - ps="pstree -wg3" + ps='pstree -wg3' } elif [[ "$OSTYPE" =~ '^freebsd' ]] { - ps="ps -aSdfxwwouser=USR -ogroup=GRP -opid,nice=NI \ - -o%cpu,%mem,tty,stat,start=START -oetime,command" + ps='ps -aSdfxwwouser=USR -ogroup=GRP -opid,nice=NI \ + -o%cpu,%mem,tty,stat,start=START -oetime,command' } elif [[ $commands[ps]:A:t == busybox ]] { # busybox compatible ps="ps -eouser='USR ' -ogroup='GRP ' \ @@ -256,8 +270,8 @@ if [[ -v commands[pstree] && $commands[pstree]:A:t != busybox ]] { } else { # XXX: untested, posix # TODO: support gnu ps - ps="ps -eouser=USR -ogroup=GRP -opid,nice=NI \ - -opcpu=CPU -ovsz=MEM -otty,stat,etime,comm" + ps='ps -eouser=USR -ogroup=GRP -opid,nice=NI \ + -opcpu=CPU -ovsz=MEM -otty,stat,etime,comm' } if [[ "$(basename "$PAGER")" = "less" ]] { ps="$ps | less -S" @@ -276,14 +290,20 @@ alias svu="sudo python3 -mvenv --upgrade" alias g=git alias gd='git diff' alias gdh='git diff HEAD' +alias gds='git diff --staged' alias ga='git add' alias ga.='git add .' +alias gai='git add -i' +alias gap='git add -p' 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 +alias gs='git show' +alias gst='git stash' +alias gsp='git stash pop' ## cd/zoxide function up { \cd $(printf '../%.0s' {1..${1:-1}}) @@ -401,5 +421,8 @@ esac autoload -Uz promptinit && promptinit prompt arrows +### plugins +load-plugins zshrc + ### load site-specific load-site-dotfile zshrc