dotfiles/zshrc

148 lines
3.4 KiB
Bash

# -*- sh -*-
# General options
enable -r repeat
setopt no_beep
setopt no_clobber
bindkey -e
setopt hash_list_all
setopt extended_glob
setopt ksh_glob
# Prompt
autoload colors ; colors
hostfg=$color[fg-white]
hostbg=$color[bg-black]
setopt prompt_subst
autoload -Uz vcs_info
zstyle ':vcs_info:*' actionformats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:*' formats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
zstyle ':vcs_info:*' enable git svn hg
autoload -Uz add-zsh-hook
add-zsh-hook precmd vcs_info
VCS='${vcs_info_msg_0_}%f'
RETURN_CODE="%0(?..[%{$fg[red]%}%B%?%b] )"
WHOAMI="%{$fg[$hostfg]$bg[$hostbg]%}[%n@%m]"
DATE="%{$fg[blue]$bg[$hostbg]%}[%D{%Y-%m-%d %H:%M:%S}]"
CWD="%{$fg[red]%}[%3~]"
JOBS="%1(j. %{$fg[green]%}[%j].)"
export PS1="$RETURN_CODE$WHOAMI $CWD $VCS$JOBS%b
└── "
unset hostfg hostbg
# History
HISTSIZE=30000
SAVEHIST=30000
HIST_IGNORE_ALL_DUPS=1
HISTFILE=~/.zsh_history
# Terminal
case "$TERM" in
"dumb")
unsetopt zle
unsetopt prompt_cr
export PS1="%n@%m:%c\$ "
;;
"rxvt-256color")
export TERM=rxvt-unicode-256color
;;
"screen")
export TERM=screen-256color
;;
esac
# Completion
fpath=(~/.config/zsh/completion $fpath)
autoload -Uz compinit
compinit
zmodload -i zsh/complist
compctl -g '*(-/)' + -g '.*(/)' cd chdir dirs pushd rmdir dircmp cl
zstyle ':completion:*:correct:*' original true
zstyle ':completion:*:correct:*' insert-unambiguous false
zstyle ':completion:*' completer _complete _correct _approximate
zstyle ':completion:*' glob true
zstyle ':completion:*' verbose yes
zstyle ':completion:*' menu select
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s%p
zstyle ':completion:*:corrections' format $'%{\e[0;31m%}%d (errors: %e)%{\e[0m%}'
zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}%d%{\e[0m%}'
zstyle ':completion:*:messages' format $'%{\e[0;31m%}%d%{\e[0m%}'
zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for: %d%{\e[0m%}'
zstyle ':completion:*' group-name ''
zstyle -e ':completion:*:approximate:*' max-errors \
'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
zstyle ':completion:*' list-colors ''
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
# Dirstack handling
setopt autopushd
DIRSTACKSIZE=30
alias d='dirs -v'
# Convenience
do-startx() {
startx $@ >| ~/.xsession-log 2>&1 &
sleep 1
vlock
}
# Aliases
if ls --version | grep -q coreutils ; then
LS_COLORS=`dircolors -b | cut -s -d= -f2- | sed -e "s/'\(.*\)';/\1/"`
export LS_COLORS
alias ls='ls --color=auto'
else
alias ls='ls --file-type'
fi
alias ll='ls -l'
alias la='ls -al'
alias l='ls -a'
alias rm="rm -i"
alias mv="mv -i"
alias cp='cp -i'
alias ..='cd ..'
alias vi='vim -X -u ~/.vimrc'
alias vim='vim -X -u ~/.vimrc'
alias ec='emacsclient -c'
alias emacs="emacs --no-site-file"
alias nop="nopaste-it -u http://icore.bomuknu.de/paste/"
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
alias sbcl="sbcl --noinform"
alias grep="grep --color=auto --binary-files=without-match --exclude=.svn"
# Utility functions
function encode-with-ffmpeg () {
$movie = $1
$output = $2
ffmpeg -y -i $movie -c:v libx264 -preset veryslow -b:v 630k -pass 1 -c:a aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i $movie -c:v libx264 -preset veryslow -b:v 630k -pass 2 -c:a aac -b:a 128k $output
}