diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/ant/ant.plugin.zsh | 6 | ||||
| -rw-r--r-- | plugins/autoenv/autoenv.plugin.zsh | 11 | ||||
| -rw-r--r-- | plugins/cake/cake.plugin.zsh | 2 | ||||
| -rw-r--r-- | plugins/command-not-found/command-not-found.plugin.zsh | 16 | ||||
| -rw-r--r-- | plugins/common-aliases/common-aliases.plugin.zsh | 6 | ||||
| -rw-r--r-- | plugins/composer/composer.plugin.zsh | 29 | ||||
| -rw-r--r-- | plugins/dircycle/dircycle.plugin.zsh | 41 | ||||
| -rw-r--r-- | plugins/docker/_docker | 7 | ||||
| -rw-r--r-- | plugins/git-prompt/git-prompt.plugin.zsh | 3 | ||||
| -rw-r--r-- | plugins/jump/jump.plugin.zsh | 1 | ||||
| -rw-r--r-- | plugins/laravel4/laravel4.plugin.zsh | 2 | ||||
| -rw-r--r-- | plugins/laravel5/laravel5.plugin.zsh | 20 | ||||
| -rw-r--r-- | plugins/last-working-dir/last-working-dir.plugin.zsh | 2 | ||||
| -rw-r--r-- | plugins/sudo/sudo.plugin.zsh | 5 | ||||
| -rw-r--r-- | plugins/vi-mode/vi-mode.plugin.zsh | 8 | ||||
| -rw-r--r-- | plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 113 | ||||
| -rw-r--r-- | plugins/web-search/web-search.plugin.zsh | 61 | 
17 files changed, 211 insertions, 122 deletions
diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 45f2b06eb..0b738c94f 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,15 +1,15 @@  _ant_does_target_list_need_generating () {    [ ! -f .ant_targets ] && return 0; -  [ .ant_targets -nt build.xml ] && return 0; +  [ build.xml -nt .ant_targets ] && return 0;    return 1;  }  _ant () {    if [ -f build.xml ]; then      if _ant_does_target_list_need_generating; then -     sed -n '/<target/s/<target.*name="\([^"]*\).*$/\1/p' build.xml > .ant_targets +    	ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets      fi -    compadd `cat .ant_targets` +    compadd -- `cat .ant_targets`    fi  } diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh index ca5666979..a8271849e 100644 --- a/plugins/autoenv/autoenv.plugin.zsh +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -1,6 +1,17 @@ +# Activates autoenv or reports its failure +if ! source $HOME/.autoenv/activate.sh 2>/dev/null; then +  echo '-------- AUTOENV ---------' +  echo 'Could not find ~/.autoenv/activate.sh.' +  echo 'Please check if autoenv is correctly installed.' +  echo 'In the meantime the autoenv plugin is DISABLED.' +  echo '--------------------------' +  return 1 +fi +  # The use_env call below is a reusable command to activate/create a new Python  # virtualenv, requiring only a single declarative line of code in your .env files.  # It only performs an action if the requested virtualenv is not the current one. +  use_env() {      typeset venv      venv="$1" diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index 44cc47470..2370df949 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/plugins/cake/cake.plugin.zsh @@ -15,7 +15,7 @@ _cake_does_target_list_need_generating () {  	fi  	[ ! -f ${_cake_task_cache_file} ] && return 0; -	[ ${_cake_task_cache_file} -nt Cakefile ] && return 0; +	[ Cakefile -nt ${_cake_task_cache_file} ] && return 0;  	return 1;  } diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index f3d7ec2df..797554a13 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -7,3 +7,19 @@  # Arch Linux command-not-found support, you must have package pkgfile installed  # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook  [[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh + +# Fedora command-not-found support +if [ -f /usr/libexec/pk-command-not-found ]; then +    command_not_found_handler () { +        runcnf=1 +        retval=127 +        [ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0 +        [ ! -x /usr/libexec/packagekitd ] && runcnf=0 +        if [ $runcnf -eq 1 ] +            then +            /usr/libexec/pk-command-not-found $@ +            retval=$? +        fi +        return $retval +    } +fi diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh index 90d59910c..e3830adcf 100644 --- a/plugins/common-aliases/common-aliases.plugin.zsh +++ b/plugins/common-aliases/common-aliases.plugin.zsh @@ -20,12 +20,6 @@ alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '  alias t='tail -f' -# because typing 'cd' is A LOT of work!! -alias ..='cd ../' -alias ...='cd ../../' -alias ....='cd ../../../' -alias .....='cd ../../../../' -  # Command line head / tail shortcuts  alias -g H='| head'  alias -g T='| tail' diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 86f2ca4df..86f5be3d0 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -7,11 +7,11 @@  # Composer basic command completion  _composer_get_command_list () { -	composer --no-ansi | sed "1,/Available commands/d" | awk '/^  [a-z]+/ { print $1 }' +    $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }'  }  _composer_get_required_list () { -    composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' +    $_comp_command1 show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }'  }  _composer () { @@ -20,29 +20,30 @@ _composer () {    _arguments \      '1: :->command'\      '*: :->args' -  if [ -f composer.json ]; then -    case $state in -      command) -        compadd `_composer_get_command_list` -        ;; -      *) -        compadd `_composer_get_required_list` -        ;; -    esac -  else -    compadd create-project init search selfupdate show -  fi + +  case $state in +    command) +      compadd $(_composer_get_command_list) +      ;; +    *) +      compadd $(_composer_get_required_list) +      ;; +  esac  }  compdef _composer composer +compdef _composer composer.phar  # Aliases  alias c='composer'  alias csu='composer self-update'  alias cu='composer update' +alias cr='composer require'  alias ci='composer install'  alias ccp='composer create-project'  alias cdu='composer dump-autoload' +alias cgu='composer global update' +alias cgr='composer global require'  # install composer in the current directory  alias cget='curl -s https://getcomposer.org/installer | php' diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index c6b6ba785..1e31105b1 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -1,10 +1,37 @@ -## -# dircycle plugin: enables cycling through the directory -# stack using Ctrl+Shift+Left/Right +# enables cycling through the directory stack using +# Ctrl+Shift+Left/Right +# +# left/right direction follows the order in which directories +# were visited, like left/right arrows do in a browser -eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }" +# NO_PUSHD_MINUS syntax: +#  pushd +N: start counting from left of `dirs' output +#  pushd -N: start counting from right of `dirs' output + +insert-cycledleft () { +	emulate -L zsh +	setopt nopushdminus + +	builtin pushd -q +1 &>/dev/null || true +	zle reset-prompt +}  zle -N insert-cycledleft -bindkey "\e[1;6D" insert-cycledleft -eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q +0'; zle accept-line }" + +insert-cycledright () { +	emulate -L zsh +	setopt nopushdminus + +	builtin pushd -q -0 &>/dev/null || true +	zle reset-prompt +}  zle -N insert-cycledright -bindkey "\e[1;6C" insert-cycledright + + +# add key bindings for iTerm2 +if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then +	bindkey "^[[1;6D" insert-cycledleft +	bindkey "^[[1;6C" insert-cycledright +else +	bindkey "\e[1;6D" insert-cycledleft +	bindkey "\e[1;6C" insert-cycledright +fi
\ No newline at end of file diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 880b6faa6..df8319ea7 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -219,6 +219,10 @@ __start() {      __docker_containers  } +__stats() { +    __docker_containers +} +  __stop() {      _arguments \          '(-t,--time=)'{-t,--time=}'[Number of seconds to wait for the container to stop before killing it.]' @@ -280,6 +284,7 @@ _1st_arguments=(      "save":"Save an image to a tar archive"      "search":"Search for an image in the docker index"      "start":"Start a stopped container" +    "stats":"Display a live stream of one or more containers' resource usage statistics"      "stop":"Stop a running container"      "tag":"Tag an image into a repository"      "top":"Lookup the running processes of a container" @@ -351,6 +356,8 @@ case "$words[1]" in          __save ;;      search)          __search ;; +    stats) +        __stats ;;      start)          __start ;;      stop) diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index 01b8a88d9..d868a5fe1 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -2,9 +2,6 @@  # http://github.com/olivierverdier/zsh-git-prompt  #  export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt -# Initialize colors. -autoload -U colors -colors  # Allow for functions in the prompt.  setopt PROMPT_SUBST diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index b16814fe4..d082c11e5 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -27,7 +27,6 @@ unmark() {  	rm -i "$MARKPATH/$1"  } -autoload colors  marks() {  	for link in $MARKPATH/*(@); do  		local markname="$fg[cyan]${link:t}$reset_color" diff --git a/plugins/laravel4/laravel4.plugin.zsh b/plugins/laravel4/laravel4.plugin.zsh index 4b1022b66..0edc84970 100644 --- a/plugins/laravel4/laravel4.plugin.zsh +++ b/plugins/laravel4/laravel4.plugin.zsh @@ -1,6 +1,6 @@  # Laravel4 basic command completion  _laravel4_get_command_list () { -	php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^  [a-z]+/ { print $1 }' +	php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z]+/ { print $1 }'  }  _laravel4 () { diff --git a/plugins/laravel5/laravel5.plugin.zsh b/plugins/laravel5/laravel5.plugin.zsh new file mode 100644 index 000000000..2afa99317 --- /dev/null +++ b/plugins/laravel5/laravel5.plugin.zsh @@ -0,0 +1,20 @@ +# Laravel5 basic command completion +_laravel5_get_command_list () { +	php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z]+/ { print $1 }' +} + +_laravel5 () { +  if [ -f artisan ]; then +    compadd `_laravel5_get_command_list` +  fi +} + +compdef _laravel5 artisan +compdef _laravel5 la5 + +#Alias +alias la5='php artisan' + +alias la5dump='php artisan dump-autoload' +alias la5cache='php artisan cache:clear' +alias la5routes='php artisan routes' diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index e472578b0..4fa6fcc34 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -5,7 +5,7 @@  # Flag indicating if we've previously jumped to last directory.  typeset -g ZSH_LAST_WORKING_DIRECTORY  mkdir -p $ZSH_CACHE_DIR -local cache_file="$ZSH_CACHE_DIR/last-working-dir" +cache_file="$ZSH_CACHE_DIR/last-working-dir"  # Updates the last directory once directory is changed.  function chpwd() { diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh index d12e06853..e3ba39918 100644 --- a/plugins/sudo/sudo.plugin.zsh +++ b/plugins/sudo/sudo.plugin.zsh @@ -13,9 +13,8 @@  # ------------------------------------------------------------------------------  sudo-command-line() { -[[ -z $BUFFER ]] && zle up-history -[[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER" -zle end-of-line  +    [[ -z $BUFFER ]] && zle up-history +    [[ $BUFFER != sudo\ * ]] && LBUFFER="sudo $LBUFFER"  }  zle -N sudo-command-line  # Defined shortcut keys: [Esc] [Esc] diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 3ed32b3fb..f2745b409 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -14,6 +14,14 @@ function zle-keymap-select zle-line-init zle-line-finish {    zle -R  } +# Ensure that the prompt is redrawn when the terminal size changes. +TRAPWINCH() { +  if [[ -o zle ]]; then +    zle reset-prompt +    zle -R +  fi +} +  zle -N zle-line-init  zle -N zle-line-finish  zle -N zle-keymap-select diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 52e02d3e0..5faa1a823 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,65 +1,70 @@  virtualenvwrapper='virtualenvwrapper.sh' -if (( $+commands[$virtualenvwrapper] )); then +if (( $+commands[$virtualenvwrapper] )); then    source ${${virtualenvwrapper}:c} +elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then +  virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper" +  source "/etc/bash_completion.d/virtualenvwrapper" +else +  print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}.\n"\ +        "Please install with \`pip install virtualenvwrapper\`" >&2 +  return +fi +if ! type workon &>/dev/null; then +  print "zsh virtualenvwrapper plugin: shell function 'workon' not defined.\n"\ +        "Please check ${virtualenvwrapper}" >&2 +  return +fi -  if [[ "$WORKON_HOME" == "" ]]; then -    echo "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" -  else +if [[ "$WORKON_HOME" == "" ]]; then +  print "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" >&2 +  return +fi -    if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then -      # Automatically activate Git projects's virtual environments based on the -      # directory name of the project. Virtual environment name can be overridden -      # by placing a .venv file in the project root with a virtualenv name in it -      function workon_cwd { -        if [ ! $WORKON_CWD ]; then -          WORKON_CWD=1 -          # Check if this is a Git repo -          PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` -          if (( $? != 0 )); then -            PROJECT_ROOT="." -          fi -          # Check for virtualenv name override -          if [[ -f "$PROJECT_ROOT/.venv" ]]; then -            ENV_NAME=`cat "$PROJECT_ROOT/.venv"` -          elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then -            ENV_NAME="$PROJECT_ROOT/.venv" -          elif [[ "$PROJECT_ROOT" != "." ]]; then -            ENV_NAME=`basename "$PROJECT_ROOT"` -          else -            ENV_NAME="" -          fi -          if [[ "$ENV_NAME" != "" ]]; then -            # Activate the environment only if it is not already active -            if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then -              if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then -                workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" -              elif [[ -e "$ENV_NAME/bin/activate" ]]; then -                source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" -              fi -            fi -          elif [ $CD_VIRTUAL_ENV ]; then -            # We've just left the repo, deactivate the environment -            # Note: this only happens if the virtualenv was activated automatically -            deactivate && unset CD_VIRTUAL_ENV +if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then +  # Automatically activate Git projects's virtual environments based on the +  # directory name of the project. Virtual environment name can be overridden +  # by placing a .venv file in the project root with a virtualenv name in it +  function workon_cwd { +    if [ ! $WORKON_CWD ]; then +      WORKON_CWD=1 +      # Check if this is a Git repo +      PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` +      if (( $? != 0 )); then +        PROJECT_ROOT="." +      fi +      # Check for virtualenv name override +      if [[ -f "$PROJECT_ROOT/.venv" ]]; then +        ENV_NAME=`cat "$PROJECT_ROOT/.venv"` +      elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then +        ENV_NAME="$PROJECT_ROOT/.venv" +      elif [[ "$PROJECT_ROOT" != "." ]]; then +        ENV_NAME=`basename "$PROJECT_ROOT"` +      else +        ENV_NAME="" +      fi +      if [[ "$ENV_NAME" != "" ]]; then +        # Activate the environment only if it is not already active +        if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then +          if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then +            workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" +          elif [[ -e "$ENV_NAME/bin/activate" ]]; then +            source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME"            fi -          unset PROJECT_ROOT -          unset WORKON_CWD -        fi -      } - -      # Append workon_cwd to the chpwd_functions array, so it will be called on cd -      # http://zsh.sourceforge.net/Doc/Release/Functions.html -      # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 -      if (( ${+chpwd_functions} )); then -        if (( $chpwd_functions[(I)workon_cwd] == 0 )); then -          set -A chpwd_functions $chpwd_functions workon_cwd          fi -      else -        set -A chpwd_functions workon_cwd +      elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then +        # We've just left the repo, deactivate the environment +        # Note: this only happens if the virtualenv was activated automatically +        deactivate && unset CD_VIRTUAL_ENV        fi +      unset PROJECT_ROOT +      unset WORKON_CWD      fi +  } + +  # Append workon_cwd to the chpwd_functions array, so it will be called on cd +  # http://zsh.sourceforge.net/Doc/Release/Functions.html +  if ! (( $chpwd_functions[(I)workon_cwd] )); then +    chpwd_functions+=(workon_cwd)    fi -else -  print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`."  fi diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 28559deb9..572427b0b 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -1,43 +1,46 @@  # web_search from terminal  function web_search() { -  # get the open command -  local open_cmd -  if [[ "$OSTYPE" = darwin* ]]; then -    open_cmd='open' -  else -    open_cmd='xdg-open' -  fi +  emulate -L zsh + +  # define search engine URLS +  typeset -A urls +  urls=( +    google      "https://www.google.com/search?q=" +    bing        "https://www.bing.com/search?q=" +    yahoo       "https://search.yahoo.com/search?p=" +    duckduckgo  "https://www.duckduckgo.com/?q=" +    yandex      "https://yandex.ru/yandsearch?text=" +  ) + +  # define the open command +  case "$OSTYPE" in +    darwin*)  open_cmd="open" ;; +    cygwin*)  open_cmd="cygstart" ;; +    linux*)   open_cmd="xdg-open" ;; +    *)        echo "Platform $OSTYPE not supported" +              return 1 +              ;; +  esac    # check whether the search engine is supported -  if [[ ! $1 =~ '(google|bing|yahoo|duckduckgo)' ]]; -  then +  if [[ -z "$urls[$1]" ]]; then      echo "Search engine $1 not supported."      return 1    fi -  local url="http://www.$1.com" - -  # no keyword provided, simply open the search engine homepage -  if [[ $# -le 1 ]]; then -    $open_cmd "$url" -    return -  fi -  if [[ $1 == 'duckduckgo' ]]; then -  #slightly different search syntax for DDG -    url="${url}/?q=" +  # search or go to main page depending on number of arguments passed +  if [[ $# -gt 1 ]]; then +    # build search url: +    # join arguments passed with '+', then append to search engine URL +    url="${urls[$1]}${(j:+:)@[2,-1]}"    else -    url="${url}/search?q=" +    # build main page url: +    # split by '/', then rejoin protocol (1) and domain (2) parts with '//' +    url="${(j://:)${(s:/:)urls[$1]}[1,2]}"    fi -  shift   # shift out $1 - -  while [[ $# -gt 0 ]]; do -    url="${url}$1+" -    shift -  done -  url="${url%?}" # remove the last '+' -  nohup $open_cmd "$url" >/dev/null 2&>1 +  nohup $open_cmd "$url" &>/dev/null  } @@ -45,6 +48,8 @@ alias bing='web_search bing'  alias google='web_search google'  alias yahoo='web_search yahoo'  alias ddg='web_search duckduckgo' +alias yandex='web_search yandex' +  #add your own !bang searches here  alias wiki='web_search duckduckgo \!w'  alias news='web_search duckduckgo \!n'  | 
