From 3656e73005fd3264479a0d830691533c07bb5bd1 Mon Sep 17 00:00:00 2001 From: Veit Heller Date: Mon, 14 Jul 2014 18:34:25 +0200 Subject: [PATCH] Added various functions to zshrc --- zshrc | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 72 insertions(+), 7 deletions(-) diff --git a/zshrc b/zshrc index 5ad650e..e21a10d 100644 --- a/zshrc +++ b/zshrc @@ -11,14 +11,18 @@ compinit HISTFILE=~/.zsh_history HISTSIZE=1000 SAVEHIST=1000 -setopt appendhistory autocd extendedglob nomatch notify +setopt appendhistory autocd extendedglob nomatch notify histignoredups noclobber bindkey -e # End of lines configured by zsh-newuser-install +setopt auto_cd multios auto_pushd pushd_minus pushd_silent pushd_to_home rm_star_wait + +export EDITOR="vim" export PATH=$PATH:/opt/local/bin:/usr/local/lib/io:~/.cabal/bin export MANPATH=$MANPATH:/opt/local/share/man export INFOPATH=$INFOPATH:/opt/local/share/info export PYTHONSTARTUP=~/.pythonrc +export RI="--format ansi" export TERM=rxvt alias gcc="gcc-mp-4.9" alias g++="g++-mp-4.9" @@ -34,13 +38,62 @@ alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo alias dud="du -d 1" alias loc="cloc *" alias ls="ls -a" -PROMPT="[%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg_no_bold[yellow]%}%1~%{$reset_color%}]\$" -expand-or-complete-with-dots(){ - echo -n "e[31m.....\e[0m" - zle expand-or-complete - zle redisplay -} +host_color=cyan +history_color=yellow +user_color=green +root_color=red +directory_color=magenta +error_color=red +jobs_color=green + +host_prompt="%{$fg_bold[$host_color]%}%m%{$reset_color%}" + +jobs_prompt1="%{$fg_bold[$jobs_color]%}(%{$reset_color%}" + +jobs_prompt2="%{$fg[$jobs_color]%}%j%{$reset_color%}" + +jobs_prompt3="%{$fg_bold[$jobs_color]%})%{$reset_color%}" + +jobs_total="%(1j.${jobs_prompt1}${jobs_prompt2}${jobs_prompt3} .)" + +history_prompt1="%{$fg_bold[$history_color]%}[%{$reset_color%}" + +history_prompt2="%{$fg[$history_color]%}%h%{$reset_color%}" + +history_prompt3="%{$fg_bold[$history_color]%}]%{$reset_color%}" + +history_total="${history_prompt1}${history_prompt2}${history_prompt3}" + +error_prompt1="%{$fg_bold[$error_color]%}<%{$reset_color%}" + +error_prompt2="%{$fg[$error_color]%}%?%{$reset_color%}" + +error_prompt3="%{$fg_bold[$error_color]%}>%{$reset_color%}" + +error_total="%(?..${error_prompt1}${error_prompt2}${error_prompt3} )" + +case "$TERM" in + (screen) + function precmd() { print -Pn "\033]0;S $TTY:t{%100<...<%~%<<}\007" } + ;; + (xterm) + directory_prompt="" + ;; + (*) + directory_prompt="%{$fg[$directory_color]%}%~%{$reset_color%} " + ;; +esac + +if [[ $USER == root ]]; then + post_prompt="%{$fg_bold[$root_color]%}%#%{$reset_color%}" +else + post_prompt="%{$fg_bold[$user_color]%}%#%{$reset_color%}" +fi + +PS1="${host_prompt} ${jobs_total}${history_total} ${directory_prompt}${error_total}${post_prompt} " + + zle -N expand-or-complete-with-dots bindkey "Î" expand-or-complete-with-dots @@ -50,6 +103,9 @@ insert_sudo () { zle -N insert-sudo insert_sudo bindkey "^[s" insert-sudo +[[ -z "$terminfo[khome]" ]] || bindkey -M emacs "$terminfo[khome]" beginning-of-line +[[ -z "$terminfo[kend]" ]] || bindkey -M emacs "$terminfo[kend]" end-of-line + case $TERM in xterm*) precmd(){print -Pn "\e]0;%m: %~\a"} @@ -136,3 +192,12 @@ save_dotfiles(){ cp ~/.vimrc ~/Documents/Code/Github/.dotfiles/vimrc cp ~/.zshrc ~/Documents/Code/Github/.dotfiles/zshrc } + +term_title_base='@%l: %1~' +preexec () { + print -nr $'\e]2;'"${(%)term_title_base} $*"'$\a' +} +precmd () { + print -nr $'\e]2;'"${(%)term_title_base} ($?)"'$\a' +} +