diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/aliases.zsh | 2 | ||||
| -rw-r--r-- | lib/appearance.zsh | 2 | ||||
| -rw-r--r-- | lib/completion.zsh | 32 | ||||
| -rw-r--r-- | lib/directories.zsh | 6 | ||||
| -rw-r--r-- | lib/functions.zsh | 36 | 
5 files changed, 70 insertions, 8 deletions
diff --git a/lib/aliases.zsh b/lib/aliases.zsh index d2d3aed81..b47de5bde 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -21,3 +21,5 @@ alias ll='ls -l'  alias sl=ls # often screw this up  alias afind='ack-grep -il' + +alias x=extract diff --git a/lib/appearance.zsh b/lib/appearance.zsh index ffee52b5e..aec67721a 100644 --- a/lib/appearance.zsh +++ b/lib/appearance.zsh @@ -34,5 +34,3 @@ ZSH_THEME_GIT_PROMPT_CLEAN=""               # Text to display if the branch is c  # Setup the prompt with pretty colors  setopt prompt_subst -# Load the theme -source "$ZSH/themes/$ZSH_THEME.zsh-theme"
\ No newline at end of file diff --git a/lib/completion.zsh b/lib/completion.zsh index 52cc5b53c..9c2dfecca 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -34,9 +34,31 @@ zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm  zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories  cdpath=(.) +# use /etc/hosts and known_hosts for hostname completion +[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=() +[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=() +hosts=( +  "$_ssh_hosts[@]" +  "$_etc_hosts[@]" +  `hostname` +  localhost +) +zstyle ':completion:*:hosts' hosts $hosts + +# Use caching so that commands like apt and dpkg complete are useable +zstyle ':completion::complete:*' use-cache 1 +zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/ + +# Don't complete uninteresting users +zstyle ':completion:*:*:*:users' ignored-patterns \ +        adm amanda apache avahi beaglidx bin cacti canna clamav daemon \ +        dbus distcache dovecot fax ftp games gdm gkrellmd gopher \ +        hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \ +        mailman mailnull mldonkey mysql nagios \ +        named netdump news nfsnobody nobody nscd ntp nut nx openvpn \ +        operator pcap postfix postgres privoxy pulse pvm quagga radvd \ +        rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs + +# ... unless we really want to. +zstyle '*' single-ignored show -# Load known hosts file for auto-completion with ssh and scp commands -if [ -f ~/.ssh/known_hosts ]; then -  zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts ) -  zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts` -fi diff --git a/lib/directories.zsh b/lib/directories.zsh index 56d7a2316..bb114f615 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -36,5 +36,9 @@ cd () {  alias md='mkdir -p'  alias rd=rmdir +alias d='dirs -v' -alias d='dirs -v'
\ No newline at end of file +# mkdir & cd to it +function mcd() {  +  mkdir -p "$1" && cd "$1";  +}
\ No newline at end of file diff --git a/lib/functions.zsh b/lib/functions.zsh index e3c0de43e..914f2ef25 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -37,3 +37,39 @@ function take() {    mkdir -p $1    cd $1  } + +function extract() { +    unset REMOVE_ARCHIVE +     +    if test "$1" = "-r"; then +        REMOVE=1 +        shift +    fi +  if [[ -f $1 ]]; then +    case $1 in +      *.tar.bz2) tar xvjf $1;; +      *.tar.gz) tar xvzf $1;; +      *.tar.xz) tar xvJf $1;; +      *.tar.lzma) tar --lzma -xvf $1;; +      *.bz2) bunzip $1;; +      *.rar) unrar $1;; +      *.gz) gunzip $1;; +      *.tar) tar xvf $1;; +      *.tbz2) tar xvjf $1;; +      *.tgz) tar xvzf $1;; +      *.zip) unzip $1;; +      *.Z) uncompress $1;; +      *.7z) 7z x $1;; +      *) echo "'$1' cannot be extracted via >extract<";; +    esac + +    if [[ $REMOVE_ARCHIVE -eq 1 ]]; then +        echo removing "$1"; +        /bin/rm "$1"; +    fi + +  else +    echo "'$1' is not a valid file" +  fi +} +  | 
