X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/118fb6e074a9e7ebf94fa5fd6c000d44b76fd403..d2e125bc54cfba9396efc7e42ed5d5506fbc9c62:/base/.zshrc diff --git a/base/.zshrc b/base/.zshrc index 51f3a34..2285889 100644 --- a/base/.zshrc +++ b/base/.zshrc @@ -1,75 +1,108 @@ -# modules -autoload -Uz vcs_info -zstyle ':vcs_info:*' enable git -zstyle ':vcs_info:*' get-revision true -zstyle ':vcs_info:git*' formats "(%F{green}%r/%b%f) %m%u%c " +## options +setopt autocd extendedglob +unsetopt beep -function precmd { - print -Pn "\e]0;${SSH_CLIENT+$USER@$HOST}%#zsh%(1j,:%j,):%~\a" - vcs_info - if ((SECONDS - _exectime >= 5)) { - # bell after long exec - print "\a" - } -} -function preexec { - printf "\033]0;%s\a" "$1" - _exectime=$SECONDS -} +## history +setopt appendhistory +HISTFILE=~/.histfile +HISTSIZE=100 +SAVEHIST=100 -# prompt -setopt prompt_subst -PROMPT='%F{$VICOL}%n%f@%F{$VICOL}%m%f%(?../%F{red}$?%f)%# ' -RPROMPT='${vcs_info_msg_0_}%F{yellow}%~%f %T' +## keys +bindkey -v +KEYTIMEOUT=1 +# xorg +bindkey "^[[7~" beginning-of-line #Home +bindkey -a "^[[7~" beginning-of-line +bindkey "^[[8~" end-of-line #End +bindkey -a "^[[8~" end-of-line +bindkey "^[[3~" delete-char #Del +bindkey -a "^[[3~" delete-char +# bsd vt +bindkey "^[[H" beginning-of-line #Home +bindkey -a "^[[H" beginning-of-line +bindkey "^[[F" end-of-line #End +bindkey -a "^[[F" end-of-line -function zle-line-init zle-keymap-select { - VICOL="${${KEYMAP:/vicmd/red}:/(main|viins)/green}" - zle reset-prompt -} -zle -N zle-line-init -zle -N zle-keymap-select +autoload -Uz up-line-or-beginning-search down-line-or-beginning-search +zle -N up-line-or-beginning-search +zle -N down-line-or-beginning-search +[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search +[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search -# common aliases +## aliases alias h="history -25" alias j="jobs -l" -alias la="ls -aF" -alias lf="ls -AF" -alias ll="ls -lhAF" -alias pa="sudo ps -Sudax" -function s { sysctl hw.snd.default_unit=$1 } - +alias l="ls -AF" +alias ll="ls -lAFho" +# ps +local p="ps -aSdxwwouser=USR -ogroup=GRP -opid,nice=N \ + -o%cpu,%mem,tt,stat,start=START -oetime,command | ${PAGER:-more} -Se" +alias pa="$p" +alias spa="sudo $p" +unset p +# sound source +function s { sysctl hw.snd.default_unit${1:+\=$1} } +# py venv +alias va="source bin/activate" +alias vd="deactivate" # be paranoid alias cp='cp -ip' alias mv='mv -i' alias rm='rm -I' - -# venv -alias activate="source bin/activate" - # ports function portpkg { case "$1" { - build|run) ;; - *) - echo "Usage: \`portpkg ' in a port directory" + build|run) + sudo pkg install -AU $(make ${1}-depends-list | + sed 's_/usr/ports/_ _' | tr -d '\n') + ;; + *) echo "Usage: \`portpkg ' in a port directory" return 1;; } - sudo pkg install -AU $(make ${1}-depends-list | sed 's_/usr/ports/_ _' | tr -d '\n') } -# keys -bindkey "^[[7~" beginning-of-line #Home -bindkey "^[[8~" end-of-line #End -bindkey "^[[3~" delete-char #Del -# vt keys -bindkey "^[[H" beginning-of-line #Home -bindkey "^[[F" end-of-line #End +## prompt +setopt prompt_subst +PROMPT='%F{$VICOL}%n%f@%F{$VICOL}%2m%f%(?../%F{red}$?%f)%# ' +RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}%f %T' -autoload -Uz up-line-or-beginning-search down-line-or-beginning-search -zle -N up-line-or-beginning-search -zle -N down-line-or-beginning-search -[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search -[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search +function zle-line-init zle-keymap-select { + VICOL="${${KEYMAP:/vicmd/red}:/(main|viins)/green}" + zle reset-prompt +} +zle -N zle-line-init +zle -N zle-keymap-select + +autoload -Uz vcs_info +zstyle ':vcs_info:*' enable git +zstyle ':vcs_info:git*' formats "%c%u%%F{green}%r/%b%%f/%%F{yellow}%S%%f" +zstyle ':vcs_info:git*' actionformats "%%F{red}(%a)%%f %c%u%%F{green}%r/%b%%f/\ +%%F{yellow}%S%%f" +#zstyle ':vcs_info:git*' check-for-changes true #too slow +zstyle ':vcs_info:git*:.dotfiles' check-for-changes true +zstyle ':vcs_info:git*' check-for-staged-changes true +zstyle ':vcs_info:git*' stagedstr "%F{blue}+" +zstyle ':vcs_info:git*' unstagedstr "%F{red}*" + +# hooks +function precmd { + # change terminal title + print -Pn "\e]0;%(1j,%j,)%#${SSH_CLIENT+$USER@$HOST:}%~\a" + # update vcs + vcs_info + # bell if exec takes 5s + if ((SECONDS - _exectime >= 5)) print "\a" +} +function preexec { + # change terminal title to show command + print -Pnf "\e]0;%s\a" "%#${SSH_CLIENT+$USER@$HOST:}$1" + # save last exec time for bell + _exectime=$SECONDS +} +function chpwd { + l +} # The following lines were added by compinstall zstyle ':completion:*' auto-description 'specify: %d' @@ -92,13 +125,4 @@ autoload -Uz compinit compinit # End of lines added by compinstall -# Lines configured by zsh-newuser-install -HISTFILE=~/.histfile -HISTSIZE=100 -SAVEHIST=100 -setopt appendhistory autocd extendedglob -unsetopt beep -bindkey -v -# End of lines configured by zsh-newuser-install - # vim: ts=8:sts=4:sw=4:et:tw=79