X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/d9362f346f3609007060bdec8ab6691a5537b0ad..1ed6734050bc3747ca2496ee19cd91516bc4d756:/base/.zshrc diff --git a/base/.zshrc b/base/.zshrc index 5fdafa8..afda957 100644 --- a/base/.zshrc +++ b/base/.zshrc @@ -1,63 +1,97 @@ -# 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 { - vcs_info - print -Pn "\e]0;%#zsh%L %(1j,%jj ,)%~\a" -} -function preexec { - printf "\033]0;%s\a" "$1" -} +## 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" +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 +function s { sysctl hw.snd.default_unit${1:+=$1} } +alias va="source bin/activate" # be paranoid alias cp='cp -ip' alias mv='mv -i' alias rm='rm -I' -# venv -alias activate="source bin/activate" - # ports -alias pbuild="sudo pkg install --automatic \`make build-depends-list | sed 's/\/usr\/ports\// /' | tr -d '\n'\`" -alias prun="sudo pkg install --automatic \`make run-depends-list | sed 's/\/usr\/ports\// /' | tr -d '\n'\`" +function portpkg { + case "$1" { + 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;; + } +} -# 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}%m%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:*' get-revision true +zstyle ':vcs_info:git*' formats "%%F{green}[%b]%m%u%c%%f %S" +zstyle ':vcs_info:git*' actionformats "%%F{red}(%a) %%F{green}[%b]%m%u%c%%f %S" + +function precmd { + print -Pn "\e]0;%(1j,%j,)%#${SSH_CLIENT+$USER@$HOST:}%~\a" + vcs_info + if ((SECONDS - _exectime >= 5)) { + # bell if exec takes 5s + print "\a" + } +} +function preexec { + # change Xorg title + print -Pnf "\e]0;%s\a" "%#${SSH_CLIENT+$USER@$HOST:}$1" + # save last exec time + _exectime=$SECONDS +} # The following lines were added by compinstall zstyle ':completion:*' auto-description 'specify: %d' @@ -80,13 +114,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