logicp 6 jaren geleden
commit
6b0dab6939
100 gewijzigde bestanden met toevoegingen van 8160 en 0 verwijderingen
  1. 8 0
      .gitignore
  2. 123 0
      CONTRIBUTING.md
  3. 22 0
      LICENSE.txt
  4. 251 0
      README.md
  5. 10 0
      lib/bzr.zsh
  6. 86 0
      lib/clipboard.zsh
  7. 44 0
      lib/compfix.zsh
  8. 73 0
      lib/completion.zsh
  9. 14 0
      lib/correction.zsh
  10. 353 0
      lib/diagnostics.zsh
  11. 30 0
      lib/directories.zsh
  12. 229 0
      lib/functions.zsh
  13. 221 0
      lib/git.zsh
  14. 28 0
      lib/grep.zsh
  15. 40 0
      lib/history.zsh
  16. 93 0
      lib/key-bindings.zsh
  17. 41 0
      lib/misc.zsh
  18. 9 0
      lib/nvm.zsh
  19. 33 0
      lib/prompt_info_functions.zsh
  20. 37 0
      lib/spectrum.zsh
  21. 105 0
      lib/termsupport.zsh
  22. 55 0
      lib/theme-and-appearance.zsh
  23. 119 0
      oh-my-zsh.sh
  24. 8 0
      plugins/adb/README.md
  25. 62 0
      plugins/adb/_adb
  26. 12 0
      plugins/ant/README.md
  27. 16 0
      plugins/ant/ant.plugin.zsh
  28. 19 0
      plugins/apache2-macports/README.md
  29. 6 0
      plugins/apache2-macports/apache2-macports.plugin.zsh
  30. 5 0
      plugins/arcanist/README.md
  31. 21 0
      plugins/arcanist/arcanist.plugin.zsh
  32. 146 0
      plugins/archlinux/README.md
  33. 219 0
      plugins/archlinux/archlinux.plugin.zsh
  34. 27 0
      plugins/asdf/README.md
  35. 17 0
      plugins/asdf/asdf.plugin.zsh
  36. 43 0
      plugins/autoenv/autoenv.plugin.zsh
  37. 11 0
      plugins/autojump/README.md
  38. 23 0
      plugins/autojump/autojump.plugin.zsh
  39. 8 0
      plugins/autopep8/README.md
  40. 32 0
      plugins/autopep8/_autopep8
  41. 20 0
      plugins/aws/README.md
  42. 49 0
      plugins/aws/aws.plugin.zsh
  43. 13 0
      plugins/battery/README.md
  44. 160 0
      plugins/battery/battery.plugin.zsh
  45. 20 0
      plugins/bbedit/README.md
  46. 21 0
      plugins/bbedit/bbedit.plugin.zsh
  47. 54 0
      plugins/bgnotify/README.md
  48. 77 0
      plugins/bgnotify/bgnotify.plugin.zsh
  49. 6 0
      plugins/boot2docker/README.md
  50. 73 0
      plugins/boot2docker/_boot2docker
  51. 18 0
      plugins/bower/README.md
  52. 58 0
      plugins/bower/_bower
  53. 82 0
      plugins/bower/bower.plugin.zsh
  54. 33 0
      plugins/branch/README.md
  55. 31 0
      plugins/branch/branch.plugin.zsh
  56. 19 0
      plugins/brew/README.md
  57. 22 0
      plugins/brew/brew.plugin.zsh
  58. 52 0
      plugins/bundler/README.md
  59. 104 0
      plugins/bundler/_bundler
  60. 115 0
      plugins/bundler/bundler.plugin.zsh
  61. 9 0
      plugins/bwana/README.md
  62. 13 0
      plugins/bwana/bwana.plugin.zsh
  63. 9 0
      plugins/cabal/README.md
  64. 93 0
      plugins/cabal/cabal.plugin.zsh
  65. 33 0
      plugins/cake/cake.plugin.zsh
  66. 38 0
      plugins/cakephp3/cakephp3.plugin.zsh
  67. 14 0
      plugins/capistrano/README.md
  68. 49 0
      plugins/capistrano/_capistrano
  69. 11 0
      plugins/capistrano/capistrano.plugin.zsh
  70. 11 0
      plugins/cargo/README.md
  71. 500 0
      plugins/cargo/_cargo
  72. 15 0
      plugins/cask/README.md
  73. 26 0
      plugins/cask/cask.plugin.zsh
  74. 35 0
      plugins/catimg/README.md
  75. 17 0
      plugins/catimg/catimg.plugin.zsh
  76. 88 0
      plugins/catimg/catimg.sh
  77. BIN
      plugins/catimg/colors.png
  78. 9 0
      plugins/celery/README.md
  79. 129 0
      plugins/celery/_celery
  80. 121 0
      plugins/chruby/chruby.plugin.zsh
  81. 1 0
      plugins/chucknorris/.gitignore
  82. 20 0
      plugins/chucknorris/README.md
  83. 28 0
      plugins/chucknorris/chucknorris.plugin.zsh
  84. 2544 0
      plugins/chucknorris/fortunes/chucknorris
  85. 2 0
      plugins/cloudapp/cloudapp.plugin.zsh
  86. 60 0
      plugins/cloudapp/cloudapp.rb
  87. 58 0
      plugins/cloudfoundry/README.md
  88. 34 0
      plugins/cloudfoundry/cloudfoundry.plugin.zsh
  89. 82 0
      plugins/codeclimate/_codeclimate
  90. 31 0
      plugins/coffee/README.md
  91. 81 0
      plugins/coffee/_coffee
  92. 16 0
      plugins/coffee/coffee.plugin.zsh
  93. 6 0
      plugins/colemak/colemak-less
  94. 22 0
      plugins/colemak/colemak.plugin.zsh
  95. 32 0
      plugins/colored-man-pages/colored-man-pages.plugin.zsh
  96. 18 0
      plugins/colorize/README.md
  97. 28 0
      plugins/colorize/colorize.plugin.zsh
  98. 31 0
      plugins/command-not-found/README.md
  99. 33 0
      plugins/command-not-found/command-not-found.plugin.zsh
  100. 87 0
      plugins/common-aliases/common-aliases.plugin.zsh

+ 8 - 0
.gitignore

@@ -0,0 +1,8 @@
+# custom files
+custom/
+!custom/plugins/example
+!custom/example.zsh
+
+# temp files directories
+cache/
+log/

+ 123 - 0
CONTRIBUTING.md

@@ -0,0 +1,123 @@
+# CONTRIBUTING GUIDELINES
+
+Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged and appreciated.
+It is also essential for the development of the project.
+
+These guidelines are an attempt at better addressing the huge amount of pending
+issues and pull requests. Please read them closely.
+
+Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
+you would make is not already covered.
+
+* [Issues](#reporting-issues)
+  * [You have a problem](#you-have-a-problem)
+  * [You have a suggestion](#you-have-a-suggestion)
+* [Pull Requests](#submitting-pull-requests)
+  * [Getting started](#getting-started)
+  * [You have a solution](#you-have-a-solution)
+  * [You have an addition](#you-have-an-addition)
+* [Information sources (_aka_ search)](#use-the-search-luke)
+
+**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
+
+## Reporting Issues
+
+### You have a problem
+
+Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
+your problem.
+
+If you find one, comment on it so we can know there are more people experiencing it.
+
+If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
+page for instructions on how to gather data to better debug your problem.
+
+Then, you can go ahead and create an issue with as much detail as you can provide.
+It should include the data gathered as indicated above, along with:
+
+1. How to reproduce the problem
+2. What the correct behavior should be
+3. What the actual behavior is
+
+Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
+(starting with `@`) in your message.
+
+We will do our very best to help you.
+
+### You have a suggestion
+
+Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
+your suggestion.
+
+If you find one, comment on it so we can know there are more people supporting it.
+
+If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
+maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
+
+## Submitting Pull Requests
+
+### Getting started
+
+You should be familiar with the basics of
+[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
+[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
+
+You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
+
+If you create your own PR, please make sure you do it right. Also be so kind as to reference
+any issue that would be solved in the PR description body,
+[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
+_"Fixes #XXXX"_ for issue number XXXX.
+
+### You have a solution
+
+Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
+your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
+
+If the solution is already reported, try it out and +1 the pull request if the
+solution works ok. On the other hand, if you think your solution is better, post
+it with a reference to the other one so we can have both solutions to compare.
+
+If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
+maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
+
+### You have an addition
+
+Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
+send themes for now.
+
+Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
+covering or related to what you want to add.
+
+If you find one, try it out and work with the author on a common solution.
+
+If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
+maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
+
+For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
+
+----
+
+## Use the Search, Luke
+
+_May the Force (of past experiences) be with you_
+
+GitHub offers [many search features](https://help.github.com/articles/searching-github/)
+to help you check whether a similar contribution to yours already exists. Please search
+before making any contribution, it avoids duplicates and eases maintenance. Trust me,
+that works 90% of the time.
+
+You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
+to be sure your contribution has not already come up.
+
+If all fails, your thing has probably not been reported yet, so you can go ahead
+and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
+
+----
+
+### You have spare time to volunteer
+
+Very nice!! :)
+
+Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
+page for instructions on where to start and more.

+ 22 - 0
LICENSE.txt

@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2009-2018 Robby Russell and contributors
+See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 251 - 0
README.md

@@ -0,0 +1,251 @@
+<p align="center">
+  <img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
+</p>
+
+Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
+
+Sounds boring. Let's try again.
+
+__Oh My Zsh will not make you a 10x developer...but you might feel like one.__
+
+Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_
+
+Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
+
+To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
+
+## Getting Started
+
+### Prerequisites
+
+__Disclaimer:__ _Oh My Zsh works best on macOS and Linux._
+
+* Unix-like operating system (macOS or Linux)
+* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
+* `curl` or `wget` should be installed
+* `git` should be installed
+
+### Basic Installation
+
+Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
+
+#### via curl
+
+```shell
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+```
+
+#### via wget
+
+```shell
+sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
+```
+
+## Using Oh My Zsh
+
+### Plugins
+
+Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
+
+#### Enabling Plugins
+
+Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
+
+```shell
+vi ~/.zshrc
+```
+
+For example, this might begin to look like this:
+
+```shell
+plugins=(
+  git
+  bundler
+  dotenv
+  osx
+  rake
+  rbenv
+  ruby
+)
+```
+
+#### Using Plugins
+
+Most plugins (should! we're working on this) include a __README__, which documents how to use them.
+
+### Themes
+
+We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://wiki.github.com/robbyrussell/oh-my-zsh/themes) on the wiki. Check them out!
+
+#### Selecting a Theme
+
+_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._
+
+Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
+
+```shell
+ZSH_THEME="robbyrussell"
+```
+
+To use a different theme, simply change the value to match the name of your desired theme. For example:
+
+```shell
+ZSH_THEME="agnoster" # (this is one of the fancy ones)
+# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
+```
+
+_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._
+
+Open up a new terminal window and your prompt should look something like this:
+
+![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)
+
+In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
+
+If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
+
+
+```shell
+ZSH_THEME="random" # (...please let it be pie... please be some pie..)
+```
+
+And if you want to pick random theme from a list of your favorite themes:
+
+```shell
+ZSH_THEME_RANDOM_CANDIDATES=(
+  "robbyrussell"
+  "agnoster"
+)
+```
+
+## Advanced Topics
+
+If you're the type that likes to get their hands dirty, these sections might resonate.
+
+### Advanced Installation
+
+Some users may want to change the default path, or manually install Oh My Zsh.
+
+#### Custom Directory
+
+The default location is `~/.oh-my-zsh` (hidden in your home directory)
+
+If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
+
+```shell
+export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+```
+
+#### Manual Installation
+
+##### 1. Clone the repository:
+
+```shell
+git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
+```
+
+##### 2. *Optionally*, backup your existing `~/.zshrc` file:
+
+```shell
+cp ~/.zshrc ~/.zshrc.orig
+```
+
+##### 3. Create a new zsh configuration file
+
+You can create a new zsh config file by copying the template that we have included for you.
+
+```shell
+cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
+```
+
+##### 4. Change your default shell
+
+```shell
+chsh -s /bin/zsh
+```
+
+##### 5. Initialize your new zsh configuration
+
+Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
+
+### Installation Problems
+
+If you have any hiccups installing, here are a few common fixes.
+
+* You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`.
+* If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`.
+
+### Custom Plugins and Themes
+
+If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
+
+If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
+
+If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
+
+## Getting Updates
+
+By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
+
+```shell
+DISABLE_UPDATE_PROMPT=true
+```
+
+To disable automatic upgrades, set the following in your `~/.zshrc`:
+
+```shell
+DISABLE_AUTO_UPDATE=true
+```
+
+### Manual Updates
+
+If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
+
+```shell
+upgrade_oh_my_zsh
+```
+
+Magic! 🎉
+
+## Uninstalling Oh My Zsh
+
+Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
+
+If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
+
+## Contributing
+
+I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
+
+We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.
+
+### Do NOT send us themes
+
+We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
+
+## Contributors
+
+Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
+
+Thank you so much!
+
+## Follow Us
+
+We're on the social media.
+
+* [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it.
+* [Oh My Zsh](https://www.facebook.com/Oh-My-Zsh-296616263819290/) on Facebook.
+
+## Merchandise
+
+We have [stickers](https://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](https://shop.planetargon.com/products/ohmyzsh-t-shirts) for you to show off your love of Oh My Zsh. Again, this will help you become the talk of the town!
+
+## License
+
+Oh My Zsh is released under the [MIT license](LICENSE.txt).
+
+## About Planet Argon
+
+![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg)
+
+Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github).

+ 10 - 0
lib/bzr.zsh

@@ -0,0 +1,10 @@
+## Bazaar integration
+## Just works with the GIT integration just add $(bzr_prompt_info) to the PROMPT
+function bzr_prompt_info() {
+	BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'`
+	if [ -n "$BZR_CB" ]; then
+		BZR_DIRTY=""
+		[[ -n `bzr status` ]] && BZR_DIRTY=" %{$fg[red]%} * %{$fg[green]%}"
+		echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
+	fi
+}

+ 86 - 0
lib/clipboard.zsh

@@ -0,0 +1,86 @@
+# System clipboard integration
+#
+# This file has support for doing system clipboard copy and paste operations
+# from the command line in a generic cross-platform fashion.
+#
+# On OS X and Windows, the main system clipboard or "pasteboard" is used. On other
+# Unix-like OSes, this considers the X Windows CLIPBOARD selection to be the
+# "system clipboard", and the X Windows `xclip` command must be installed.
+
+# clipcopy - Copy data to clipboard
+#
+# Usage:
+#
+#  <command> | clipcopy    - copies stdin to clipboard
+#
+#  clipcopy <file>         - copies a file's contents to clipboard
+#
+function clipcopy() {
+  emulate -L zsh
+  local file=$1
+  if [[ $OSTYPE == darwin* ]]; then
+    if [[ -z $file ]]; then
+      pbcopy
+    else
+      cat $file | pbcopy
+    fi
+  elif [[ $OSTYPE == cygwin* ]]; then
+    if [[ -z $file ]]; then
+      cat > /dev/clipboard
+    else
+      cat $file > /dev/clipboard
+    fi
+  else
+    if (( $+commands[xclip] )); then
+      if [[ -z $file ]]; then
+        xclip -in -selection clipboard
+      else
+        xclip -in -selection clipboard $file
+      fi
+    elif (( $+commands[xsel] )); then
+      if [[ -z $file ]]; then
+        xsel --clipboard --input 
+      else
+        cat "$file" | xsel --clipboard --input
+      fi
+    else
+      print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
+      return 1
+    fi
+  fi
+}
+
+# clippaste - "Paste" data from clipboard to stdout
+#
+# Usage:
+#
+#   clippaste   - writes clipboard's contents to stdout
+#
+#   clippaste | <command>    - pastes contents and pipes it to another process
+#
+#   clippaste > <file>      - paste contents to a file
+#
+# Examples:
+#
+#   # Pipe to another process
+#   clippaste | grep foo
+#
+#   # Paste to a file
+#   clippaste > file.txt
+function clippaste() {
+  emulate -L zsh
+  if [[ $OSTYPE == darwin* ]]; then
+    pbpaste
+  elif [[ $OSTYPE == cygwin* ]]; then
+    cat /dev/clipboard
+  else
+    if (( $+commands[xclip] )); then
+      xclip -out -selection clipboard
+    elif (( $+commands[xsel] )); then
+      xsel --clipboard --output
+    else
+      print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
+      return 1
+    fi
+  fi
+}

+ 44 - 0
lib/compfix.zsh

@@ -0,0 +1,44 @@
+# Handle completions insecurities (i.e., completion-dependent directories with
+# insecure ownership or permissions) by:
+#
+# * Human-readably notifying the user of these insecurities.
+function handle_completion_insecurities() {
+  # List of the absolute paths of all unique insecure directories, split on
+  # newline from compaudit()'s output resembling:
+  #
+  #     There are insecure directories:
+  #     /usr/share/zsh/site-functions
+  #     /usr/share/zsh/5.0.6/functions
+  #     /usr/share/zsh
+  #     /usr/share/zsh/5.0.6
+  #
+  # Since the ignorable first line is printed to stderr and thus not captured,
+  # stderr is squelched to prevent this output from leaking to the user. 
+  local -aU insecure_dirs
+  insecure_dirs=( ${(f@):-"$(compaudit 2>/dev/null)"} )
+
+  # If no such directories exist, get us out of here.
+  (( ! ${#insecure_dirs} )) && return
+
+  # List ownership and permissions of all insecure directories.
+  print "[oh-my-zsh] Insecure completion-dependent directories detected:"
+  ls -ld "${(@)insecure_dirs}"
+
+  cat <<EOD
+
+[oh-my-zsh] For safety, we will not load completions from these directories until
+[oh-my-zsh] you fix their permissions and ownership and restart zsh.
+[oh-my-zsh] See the above list for directories with group or other writability.
+
+[oh-my-zsh] To fix your permissions you can do so by disabling
+[oh-my-zsh] the write permission of "group" and "others" and making sure that the
+[oh-my-zsh] owner of these directories is either root or your current user.
+[oh-my-zsh] The following command may help:
+[oh-my-zsh]     compaudit | xargs chmod g-w,o-w
+
+[oh-my-zsh] If the above didn't help or you want to skip the verification of
+[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
+[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.
+
+EOD
+}

+ 73 - 0
lib/completion.zsh

@@ -0,0 +1,73 @@
+# fixme - the load process here seems a bit bizarre
+zmodload -i zsh/complist
+
+WORDCHARS=''
+
+unsetopt menu_complete   # do not autoselect the first completion entry
+unsetopt flowcontrol
+setopt auto_menu         # show completion menu on successive tab press
+setopt complete_in_word
+setopt always_to_end
+
+# should this be in keybindings?
+bindkey -M menuselect '^o' accept-and-infer-next-history
+zstyle ':completion:*:*:*:*:*' menu select
+
+# case insensitive (all), partial-word and substring completion
+if [[ "$CASE_SENSITIVE" = true ]]; then
+  zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*'
+else
+  if [[ "$HYPHEN_INSENSITIVE" = true ]]; then
+    zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*'
+  else
+    zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
+  fi
+fi
+unset CASE_SENSITIVE HYPHEN_INSENSITIVE
+
+# Complete . and .. special directories
+zstyle ':completion:*' special-dirs true
+
+zstyle ':completion:*' list-colors ''
+zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
+
+if [[ "$OSTYPE" = solaris* ]]; then
+  zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm"
+else
+  zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
+fi
+
+# disable named-directories autocompletion
+zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
+
+# Use caching so that commands like apt and dpkg complete are useable
+zstyle ':completion::complete:*' use-cache 1
+zstyle ':completion::complete:*' cache-path $ZSH_CACHE_DIR
+
+# Don't complete uninteresting users
+zstyle ':completion:*:*:*:users' ignored-patterns \
+        adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \
+        clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \
+        gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \
+        ldap lp mail mailman mailnull man messagebus  mldonkey mysql nagios \
+        named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \
+        operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \
+        rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \
+        usbmux uucp vcsa wwwrun xfs '_*'
+
+# ... unless we really want to.
+zstyle '*' single-ignored show
+
+if [[ $COMPLETION_WAITING_DOTS = true ]]; then
+  expand-or-complete-with-dots() {
+    # toggle line-wrapping off and back on again
+    [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
+    print -Pn "%{%F{red}......%f%}"
+    [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
+
+    zle expand-or-complete
+    zle redisplay
+  }
+  zle -N expand-or-complete-with-dots
+  bindkey "^I" expand-or-complete-with-dots
+fi

+ 14 - 0
lib/correction.zsh

@@ -0,0 +1,14 @@
+if [[ "$ENABLE_CORRECTION" == "true" ]]; then
+  alias cp='nocorrect cp'
+  alias ebuild='nocorrect ebuild'
+  alias gist='nocorrect gist'
+  alias heroku='nocorrect heroku'
+  alias hpodder='nocorrect hpodder'
+  alias man='nocorrect man'
+  alias mkdir='nocorrect mkdir'
+  alias mv='nocorrect mv'
+  alias mysql='nocorrect mysql'
+  alias sudo='nocorrect sudo'
+
+  setopt correct_all
+fi

+ 353 - 0
lib/diagnostics.zsh

@@ -0,0 +1,353 @@
+# diagnostics.zsh
+#
+# Diagnostic and debugging support for oh-my-zsh
+
+# omz_diagnostic_dump()
+#
+# Author: Andrew Janke <andrew@apjanke.net>
+#
+# Usage:
+#
+# omz_diagnostic_dump [-v] [-V] [file]
+#
+# NOTE: This is a work in progress. Its interface and behavior are going to change,
+# and probably in non-back-compatible ways.
+#
+# Outputs a bunch of information about the state and configuration of
+# oh-my-zsh, zsh, and the user's system. This is intended to provide a
+# bunch of context for diagnosing your own or a third party's problems, and to
+# be suitable for posting to public bug reports.
+#
+# The output is human-readable and its format may change over time. It is not
+# suitable for parsing. All the output is in one single file so it can be posted
+# as a gist or bug comment on GitHub. GitHub doesn't support attaching tarballs
+# or other files to bugs; otherwise, this would probably have an option to produce
+# tarballs that contain copies of the config and customization files instead of
+# catting them all in to one file.
+#
+# This is intended to be widely portable, and run anywhere that oh-my-zsh does.
+# Feel free to report any portability issues as bugs.
+#
+# This is written in a defensive style so it still works (and can detect) cases when
+# basic functionality like echo and which have been redefined. In particular, almost
+# everything is invoked with "builtin" or "command", to work in the face of user 
+# redefinitions.
+#
+# OPTIONS
+#
+# [file]   Specifies the output file. If not given, a file in the current directory
+#        is selected automatically.
+#
+# -v    Increase the verbosity of the dump output. May be specified multiple times.
+#       Verbosity levels:
+#        0 - Basic info, shell state, omz configuration, git state
+#        1 - (default) Adds key binding info and configuration file contents
+#        2 - Adds zcompdump file contents
+#
+# -V    Reduce the verbosity of the dump output. May be specified multiple times.
+#
+# TODO:
+# * Multi-file capture
+# * Add automatic gist uploading
+# * Consider whether to move default output file location to TMPDIR. More robust
+#     but less user friendly.
+#
+
+autoload -Uz is-at-least
+
+function omz_diagnostic_dump() {
+  emulate -L zsh
+
+  builtin echo "Generating diagnostic dump; please be patient..."
+  
+  local thisfcn=omz_diagnostic_dump
+  local -A opts
+  local opt_verbose opt_noverbose opt_outfile
+  local timestamp=$(date +%Y%m%d-%H%M%S)
+  local outfile=omz_diagdump_$timestamp.txt
+  builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose"
+  local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose}
+  (( verbose = 1 + n_verbose - n_noverbose ))
+
+  if [[ ${#*} > 0 ]]; then
+    opt_outfile=$1
+  fi
+  if [[ ${#*} > 1 ]]; then
+    builtin echo "$thisfcn: error: too many arguments" >&2
+    return 1
+  fi
+  if [[ -n "$opt_outfile" ]]; then
+    outfile="$opt_outfile"
+  fi
+
+  # Always write directly to a file so terminal escape sequences are
+  # captured cleanly
+  _omz_diag_dump_one_big_text &> "$outfile"
+  if [[ $? != 0 ]]; then
+    builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details"
+  fi
+
+  builtin echo
+  builtin echo Diagnostic dump file created at: "$outfile"
+  builtin echo
+  builtin echo To share this with OMZ developers, post it as a gist on GitHub 
+  builtin echo at "https://gist.github.com" and share the link to the gist.
+  builtin echo
+  builtin echo "WARNING: This dump file contains all your zsh and omz configuration files,"
+  builtin echo "so don't share it publicly if there's sensitive information in them."
+  builtin echo
+
+}
+
+function _omz_diag_dump_one_big_text() {
+  local program programs progfile md5
+
+  builtin echo oh-my-zsh diagnostic dump
+  builtin echo
+  builtin echo $outfile
+  builtin echo 
+  
+  # Basic system and zsh information
+  command date
+  command uname -a
+  builtin echo OSTYPE=$OSTYPE
+  builtin echo ZSH_VERSION=$ZSH_VERSION
+  builtin echo User: $USER
+  builtin echo umask: $(umask)
+  builtin echo
+  _omz_diag_dump_os_specific_version
+  builtin echo
+
+  # Installed programs
+  programs=(sh zsh ksh bash sed cat grep ls find git posh)
+  local progfile="" extra_str="" sha_str=""
+  for program in $programs; do
+    extra_str="" sha_str=""
+    progfile=$(builtin which $program)
+    if [[ $? == 0 ]]; then
+      if [[ -e $progfile ]]; then
+        if builtin whence shasum &>/dev/null; then
+          sha_str=($(command shasum $progfile))
+          sha_str=$sha_str[1]
+          extra_str+=" SHA $sha_str"
+        fi
+        if [[ -h "$progfile" ]]; then
+          extra_str+=" ( -> ${progfile:A} )"
+        fi
+      fi
+      builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str"
+    else
+      builtin echo "$program: not found"
+    fi
+  done
+  builtin echo
+  builtin echo Command Versions:
+  builtin echo "zsh: $(zsh --version)"
+  builtin echo "this zsh session: $ZSH_VERSION"
+  builtin echo "bash: $(bash --version | command grep bash)"
+  builtin echo "git: $(git --version)"
+  builtin echo "grep: $(grep --version)"
+  builtin echo
+
+  # Core command definitions
+  _omz_diag_dump_check_core_commands || return 1
+  builtin echo  
+
+  # ZSH Process state
+  builtin echo Process state:
+  builtin echo pwd: $PWD
+  if builtin whence pstree &>/dev/null; then
+    builtin echo Process tree for this shell:
+    pstree -p $$
+  else
+    ps -fT
+  fi
+  builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ'
+  builtin echo
+  #TODO: Should this include `env` instead of or in addition to `export`?
+  builtin echo Exported:
+  builtin echo $(builtin export | command sed 's/=.*//')
+  builtin echo 
+  builtin echo Locale:
+  command locale
+  builtin echo
+
+  # Zsh installation and configuration
+  builtin echo Zsh configuration:
+  builtin echo setopt: $(builtin setopt)
+  builtin echo
+  builtin echo zstyle:
+  builtin zstyle
+  builtin echo
+  builtin echo 'compaudit output:'
+  compaudit
+  builtin echo 
+  builtin echo '$fpath directories:'
+  command ls -lad $fpath
+  builtin echo
+
+  # Oh-my-zsh installation
+  builtin echo oh-my-zsh installation:
+  command ls -ld ~/.z*
+  command ls -ld ~/.oh*
+  builtin echo
+  builtin echo oh-my-zsh git state:
+  (cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]")
+  if [[ $verbose -ge 1 ]]; then
+    (cd $ZSH && git reflog --date=default | command grep pull)
+  fi
+  builtin echo
+  if [[ -e $ZSH_CUSTOM ]]; then
+    local custom_dir=$ZSH_CUSTOM
+    if [[ -h $custom_dir ]]; then
+      custom_dir=$(cd $custom_dir && pwd -P)
+    fi
+    builtin echo "oh-my-zsh custom dir:"
+    builtin echo "   $ZSH_CUSTOM ($custom_dir)"
+    (cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print)
+    builtin echo
+  fi
+
+  # Key binding and terminal info
+  if [[ $verbose -ge 1 ]]; then
+    builtin echo "bindkey:"
+    builtin bindkey
+    builtin echo
+    builtin echo "infocmp:"
+    command infocmp -L
+    builtin echo
+  fi
+
+  # Configuration file info
+  local zdotdir=${ZDOTDIR:-$HOME}
+  builtin echo "Zsh configuration files:"
+  local cfgfile cfgfiles
+  # Some files for bash that zsh does not use are intentionally included
+  # to help with diagnosing behavior differences between bash and zsh
+  cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout 
+    $zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout
+    ~/.zsh.pre-oh-my-zsh
+    /etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout )
+  command ls -lad $cfgfiles 2>&1
+  builtin echo
+  if [[ $verbose -ge 1 ]]; then
+    for cfgfile in $cfgfiles; do
+      _omz_diag_dump_echo_file_w_header $cfgfile
+    done
+  fi
+  builtin echo
+  builtin echo "Zsh compdump files:"
+  local dumpfile dumpfiles
+  command ls -lad $zdotdir/.zcompdump*
+  dumpfiles=( $zdotdir/.zcompdump*(N) )
+  if [[ $verbose -ge 2 ]]; then
+    for dumpfile in $dumpfiles; do
+      _omz_diag_dump_echo_file_w_header $dumpfile
+    done
+  fi
+
+}
+
+function _omz_diag_dump_check_core_commands() {
+  builtin echo "Core command check:"
+  local redefined name builtins externals reserved_words
+  redefined=()
+  # All the zsh non-module builtin commands
+  # These are taken from the zsh reference manual for 5.0.2
+  # Commands from modules should not be included.
+  # (For back-compatibility, if any of these are newish, they should be removed,
+  # or at least made conditional on the version of the current running zsh.)
+  # "history" is also excluded because OMZ is known to redefine that
+  reserved_words=( do done esac then elif else fi for case if while function 
+    repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}' 
+    )
+  builtins=( alias autoload bg bindkey break builtin bye cd chdir command
+    comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
+    comptry compvalues continue dirs disable disown echo echotc echoti emulate
+    enable eval exec exit false fc fg functions getln getopts hash
+    jobs kill let limit log logout noglob popd print printf
+    pushd pushln pwd r read rehash return sched set setopt shift
+    source suspend test times trap true ttyctl type ulimit umask unalias
+    unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
+    zle zmodload zparseopts zregexparse zstyle )
+  if is-at-least 5.1; then
+    reserved_word+=( declare export integer float local readonly typeset )
+  else
+    builtins+=( declare export integer float local readonly typeset )
+  fi
+  builtins_fatal=( builtin command local )
+  externals=( zsh )
+  for name in $reserved_words; do
+    if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then
+      builtin echo "reserved word '$name' has been redefined"
+      builtin which $name
+      redefined+=$name
+    fi
+  done
+  for name in $builtins; do
+    if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
+      builtin echo "builtin '$name' has been redefined"
+      builtin which $name
+      redefined+=$name
+    fi
+  done
+  for name in $externals; do
+    if [[ $(builtin whence -w $name) != "$name: command" ]]; then
+      builtin echo "command '$name' has been redefined"
+      builtin which $name
+      redefined+=$name
+    fi
+  done
+
+  if [[ -n "$redefined" ]]; then
+    builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined"
+  else
+    builtin echo "All core commands are defined normally"
+  fi
+
+}
+
+function _omz_diag_dump_echo_file_w_header() {
+  local file=$1
+  if [[ ( -f $file || -h $file ) ]]; then
+    builtin echo "========== $file =========="
+    if [[ -h $file ]]; then
+      builtin echo "==========    ( => ${file:A} )   =========="
+    fi
+    command cat $file
+    builtin echo "========== end $file =========="
+    builtin echo
+  elif [[ -d $file ]]; then
+    builtin echo "File '$file' is a directory"
+  elif [[ ! -e $file ]]; then
+    builtin echo "File '$file' does not exist"
+  else
+    command ls -lad "$file"
+  fi
+}
+
+function _omz_diag_dump_os_specific_version() {
+  local osname osver version_file version_files
+  case "$OSTYPE" in
+    darwin*)
+      osname=$(command sw_vers -productName)
+      osver=$(command sw_vers -productVersion)      
+      builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)"
+      ;;
+    cygwin)
+      command systeminfo | command head -4 | command tail -2
+      ;;
+  esac
+
+  if builtin which lsb_release >/dev/null; then
+    builtin echo "OS Release: $(command lsb_release -s -d)"
+  fi
+
+  version_files=( /etc/*-release(N) /etc/*-version(N) /etc/*_version(N) )
+  for version_file in $version_files; do
+    builtin echo "$version_file:"
+    command cat "$version_file"
+    builtin echo
+  done
+}
+

+ 30 - 0
lib/directories.zsh

@@ -0,0 +1,30 @@
+# Changing/making/removing directory
+setopt auto_pushd
+setopt pushd_ignore_dups
+setopt pushdminus
+
+alias -g ...='../..'
+alias -g ....='../../..'
+alias -g .....='../../../..'
+alias -g ......='../../../../..'
+
+alias -- -='cd -'
+alias 1='cd -'
+alias 2='cd -2'
+alias 3='cd -3'
+alias 4='cd -4'
+alias 5='cd -5'
+alias 6='cd -6'
+alias 7='cd -7'
+alias 8='cd -8'
+alias 9='cd -9'
+
+alias md='mkdir -p'
+alias rd=rmdir
+alias d='dirs -v | head -10'
+
+# List directory contents
+alias lsa='ls -lah'
+alias l='ls -lah'
+alias ll='ls -lh'
+alias la='ls -lAh'

+ 229 - 0
lib/functions.zsh

@@ -0,0 +1,229 @@
+function zsh_stats() {
+  fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl |  head -n20
+}
+
+function uninstall_oh_my_zsh() {
+  env ZSH=$ZSH sh $ZSH/tools/uninstall.sh
+}
+
+function upgrade_oh_my_zsh() {
+  env ZSH=$ZSH sh $ZSH/tools/upgrade.sh
+}
+
+function take() {
+  mkdir -p $@ && cd ${@:$#}
+}
+
+function open_command() {
+  local open_cmd
+
+  # define the open command
+  case "$OSTYPE" in
+    darwin*)  open_cmd='open' ;;
+    cygwin*)  open_cmd='cygstart' ;;
+    linux*)   ! [[ $(uname -a) =~ "Microsoft" ]] && open_cmd='xdg-open' || {
+                open_cmd='cmd.exe /c start ""'
+                [[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
+              } ;;
+    msys*)    open_cmd='start ""' ;;
+    *)        echo "Platform $OSTYPE not supported"
+              return 1
+              ;;
+  esac
+
+  # don't use nohup on OSX
+  if [[ "$OSTYPE" == darwin* ]]; then
+    ${=open_cmd} "$@" &>/dev/null
+  else
+    nohup ${=open_cmd} "$@" &>/dev/null
+  fi
+}
+
+#
+# Get the value of an alias.
+#
+# Arguments:
+#    1. alias - The alias to get its value from
+# STDOUT:
+#    The value of alias $1 (if it has one).
+# Return value:
+#    0 if the alias was found,
+#    1 if it does not exist
+#
+function alias_value() {
+    (( $+aliases[$1] )) && echo $aliases[$1]
+}
+
+#
+# Try to get the value of an alias,
+# otherwise return the input.
+#
+# Arguments:
+#    1. alias - The alias to get its value from
+# STDOUT:
+#    The value of alias $1, or $1 if there is no alias $1.
+# Return value:
+#    Always 0
+#
+function try_alias_value() {
+    alias_value "$1" || echo "$1"
+}
+
+#
+# Set variable "$1" to default value "$2" if "$1" is not yet defined.
+#
+# Arguments:
+#    1. name - The variable to set
+#    2. val  - The default value
+# Return value:
+#    0 if the variable exists, 3 if it was set
+#
+function default() {
+    test `typeset +m "$1"` && return 0
+    typeset -g "$1"="$2"   && return 3
+}
+
+#
+# Set environment variable "$1" to default value "$2" if "$1" is not yet defined.
+#
+# Arguments:
+#    1. name - The env variable to set
+#    2. val  - The default value
+# Return value:
+#    0 if the env variable exists, 3 if it was set
+#
+function env_default() {
+    env | grep -q "^$1=" && return 0
+    export "$1=$2"       && return 3
+}
+
+
+# Required for $langinfo
+zmodload zsh/langinfo
+
+# URL-encode a string
+#
+# Encodes a string using RFC 2396 URL-encoding (%-escaped).
+# See: https://www.ietf.org/rfc/rfc2396.txt
+#
+# By default, reserved characters and unreserved "mark" characters are
+# not escaped by this function. This allows the common usage of passing
+# an entire URL in, and encoding just special characters in it, with
+# the expectation that reserved and mark characters are used appropriately.
+# The -r and -m options turn on escaping of the reserved and mark characters,
+# respectively, which allows arbitrary strings to be fully escaped for
+# embedding inside URLs, where reserved characters might be misinterpreted.
+#
+# Prints the encoded string on stdout.
+# Returns nonzero if encoding failed.
+#
+# Usage:
+#  omz_urlencode [-r] [-m] [-P] <string>
+#
+#    -r causes reserved characters (;/?:@&=+$,) to be escaped
+#
+#    -m causes "mark" characters (_.!~*''()-) to be escaped
+#
+#    -P causes spaces to be encoded as '%20' instead of '+'
+function omz_urlencode() {
+  emulate -L zsh
+  zparseopts -D -E -a opts r m P
+
+  local in_str=$1
+  local url_str=""
+  local spaces_as_plus
+  if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi
+  local str="$in_str"
+
+  # URLs must use UTF-8 encoding; convert str to UTF-8 if required
+  local encoding=$langinfo[CODESET]
+  local safe_encodings
+  safe_encodings=(UTF-8 utf8 US-ASCII)
+  if [[ -z ${safe_encodings[(r)$encoding]} ]]; then
+    str=$(echo -E "$str" | iconv -f $encoding -t UTF-8)
+    if [[ $? != 0 ]]; then
+      echo "Error converting string from $encoding to UTF-8" >&2
+      return 1
+    fi
+  fi
+
+  # Use LC_CTYPE=C to process text byte-by-byte
+  local i byte ord LC_ALL=C
+  export LC_ALL
+  local reserved=';/?:@&=+$,'
+  local mark='_.!~*''()-'
+  local dont_escape="[A-Za-z0-9"
+  if [[ -z $opts[(r)-r] ]]; then
+    dont_escape+=$reserved
+  fi
+  # $mark must be last because of the "-"
+  if [[ -z $opts[(r)-m] ]]; then
+    dont_escape+=$mark
+  fi
+  dont_escape+="]"
+
+  # Implemented to use a single printf call and avoid subshells in the loop,
+  # for performance (primarily on Windows).
+  local url_str=""
+  for (( i = 1; i <= ${#str}; ++i )); do
+    byte="$str[i]"
+    if [[ "$byte" =~ "$dont_escape" ]]; then
+      url_str+="$byte"
+    else
+      if [[ "$byte" == " " && -n $spaces_as_plus ]]; then
+        url_str+="+"
+      else
+        ord=$(( [##16] #byte ))
+        url_str+="%$ord"
+      fi
+    fi
+  done
+  echo -E "$url_str"
+}
+
+# URL-decode a string
+#
+# Decodes a RFC 2396 URL-encoded (%-escaped) string.
+# This decodes the '+' and '%' escapes in the input string, and leaves
+# other characters unchanged. Does not enforce that the input is a
+# valid URL-encoded string. This is a convenience to allow callers to
+# pass in a full URL or similar strings and decode them for human
+# presentation.
+#
+# Outputs the encoded string on stdout.
+# Returns nonzero if encoding failed.
+#
+# Usage:
+#   omz_urldecode <urlstring>  - prints decoded string followed by a newline
+function omz_urldecode {
+  emulate -L zsh
+  local encoded_url=$1
+
+  # Work bytewise, since URLs escape UTF-8 octets
+  local caller_encoding=$langinfo[CODESET]
+  local LC_ALL=C
+  export LC_ALL
+
+  # Change + back to ' '
+  local tmp=${encoded_url:gs/+/ /}
+  # Protect other escapes to pass through the printf unchanged
+  tmp=${tmp:gs/\\/\\\\/}
+  # Handle %-escapes by turning them into `\xXX` printf escapes
+  tmp=${tmp:gs/%/\\x/}
+  local decoded
+  eval "decoded=\$'$tmp'"
+
+  # Now we have a UTF-8 encoded string in the variable. We need to re-encode
+  # it if caller is in a non-UTF-8 locale.
+  local safe_encodings
+  safe_encodings=(UTF-8 utf8 US-ASCII)
+  if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]; then
+    decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding)
+    if [[ $? != 0 ]]; then
+      echo "Error converting string from UTF-8 to $caller_encoding" >&2
+      return 1
+    fi
+  fi
+
+  echo -E "$decoded"
+}

+ 221 - 0
lib/git.zsh

@@ -0,0 +1,221 @@
+# Outputs current branch info in prompt format
+function git_prompt_info() {
+  local ref
+  if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
+    ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
+    ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
+    echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
+  fi
+}
+
+# Checks if working tree is dirty
+function parse_git_dirty() {
+  local STATUS=''
+  local -a FLAGS
+  FLAGS=('--porcelain')
+  if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
+    if [[ $POST_1_7_2_GIT -gt 0 ]]; then
+      FLAGS+='--ignore-submodules=dirty'
+    fi
+    if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
+      FLAGS+='--untracked-files=no'
+    fi
+    STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
+  fi
+  if [[ -n $STATUS ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
+  else
+    echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+  fi
+}
+
+# Gets the difference between the local and remote branches
+function git_remote_status() {
+    local remote ahead behind git_remote_status git_remote_status_detailed
+    remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
+    if [[ -n ${remote} ]]; then
+        ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
+        behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
+
+        if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]; then
+            git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
+        elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then
+            git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
+            git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
+        elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then
+            git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
+            git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
+        elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then
+            git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
+            git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
+        fi
+
+        if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
+            git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
+        fi
+
+        echo $git_remote_status
+    fi
+}
+
+# Outputs the name of the current branch
+# Usage example: git pull origin $(git_current_branch)
+# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if
+# it's not a symbolic ref, but in a Git repo.
+function git_current_branch() {
+  local ref
+  ref=$(command git symbolic-ref --quiet HEAD 2> /dev/null)
+  local ret=$?
+  if [[ $ret != 0 ]]; then
+    [[ $ret == 128 ]] && return  # no git repo.
+    ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
+  fi
+  echo ${ref#refs/heads/}
+}
+
+
+# Gets the number of commits ahead from remote
+function git_commits_ahead() {
+  if command git rev-parse --git-dir &>/dev/null; then
+    local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)"
+    if [[ -n "$commits" && "$commits" != 0 ]]; then
+      echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
+    fi
+  fi
+}
+
+# Gets the number of commits behind remote
+function git_commits_behind() {
+  if command git rev-parse --git-dir &>/dev/null; then
+    local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)"
+    if [[ -n "$commits" && "$commits" != 0 ]]; then
+      echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
+    fi
+  fi
+}
+
+# Outputs if current branch is ahead of remote
+function git_prompt_ahead() {
+  if [[ -n "$(command git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
+  fi
+}
+
+# Outputs if current branch is behind remote
+function git_prompt_behind() {
+  if [[ -n "$(command git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_BEHIND"
+  fi
+}
+
+# Outputs if current branch exists on remote or not
+function git_prompt_remote() {
+  if [[ -n "$(command git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS"
+  else
+    echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING"
+  fi
+}
+
+# Formats prompt string for current git commit short SHA
+function git_prompt_short_sha() {
+  local SHA
+  SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
+}
+
+# Formats prompt string for current git commit long SHA
+function git_prompt_long_sha() {
+  local SHA
+  SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
+}
+
+# Get the status of the working tree
+function git_prompt_status() {
+  local INDEX STATUS
+  INDEX=$(command git status --porcelain -b 2> /dev/null)
+  STATUS=""
+  if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^A  ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
+  elif $(echo "$INDEX" | grep '^M  ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
+  elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
+  elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
+  elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
+  elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
+  elif $(echo "$INDEX" | grep '^D  ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
+  elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
+  fi
+  if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
+  fi
+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null); then
+    STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
+  fi
+  echo $STATUS
+}
+
+# Compares the provided version of git to the version installed and on path
+# Outputs -1, 0, or 1 if the installed version is less than, equal to, or
+# greater than the input version, respectively.
+function git_compare_version() {
+  local INPUT_GIT_VERSION INSTALLED_GIT_VERSION i
+  INPUT_GIT_VERSION=(${(s/./)1})
+  INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null))
+  INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]})
+
+  for i in {1..3}; do
+    if [[ $INSTALLED_GIT_VERSION[$i] -gt $INPUT_GIT_VERSION[$i] ]]; then
+      echo 1
+      return 0
+    fi
+    if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then
+      echo -1
+      return 0
+    fi
+  done
+  echo 0
+}
+
+# Outputs the name of the current user
+# Usage example: $(git_current_user_name)
+function git_current_user_name() {
+  command git config user.name 2>/dev/null
+}
+
+# Outputs the email of the current user
+# Usage example: $(git_current_user_email)
+function git_current_user_email() {
+  command git config user.email 2>/dev/null
+}
+
+# This is unlikely to change so make it all statically assigned
+POST_1_7_2_GIT=$(git_compare_version "1.7.2")
+# Clean up the namespace slightly by removing the checker function
+unfunction git_compare_version

+ 28 - 0
lib/grep.zsh

@@ -0,0 +1,28 @@
+# is x grep argument available?
+grep-flag-available() {
+    echo | grep $1 "" >/dev/null 2>&1
+}
+
+GREP_OPTIONS=""
+
+# color grep results
+if grep-flag-available --color=auto; then
+    GREP_OPTIONS+=" --color=auto"
+fi
+
+# ignore VCS folders (if the necessary grep flags are available)
+VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
+
+if grep-flag-available --exclude-dir=.cvs; then
+    GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
+elif grep-flag-available --exclude=.cvs; then
+    GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
+fi
+
+# export grep settings
+alias grep="grep $GREP_OPTIONS"
+
+# clean up
+unset GREP_OPTIONS
+unset VCS_FOLDERS
+unfunction grep-flag-available

+ 40 - 0
lib/history.zsh

@@ -0,0 +1,40 @@
+## History wrapper
+function omz_history {
+  local clear list
+  zparseopts -E c=clear l=list
+
+  if [[ -n "$clear" ]]; then
+    # if -c provided, clobber the history file
+    echo -n >| "$HISTFILE"
+    echo >&2 History file deleted. Reload the session to see its effects.
+  elif [[ -n "$list" ]]; then
+    # if -l provided, run as if calling `fc' directly
+    builtin fc "$@"
+  else
+    # unless a number is provided, show all history events (starting from 1)
+    [[ ${@[-1]} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1
+  fi
+}
+
+# Timestamp format
+case $HIST_STAMPS in
+  "mm/dd/yyyy") alias history='omz_history -f' ;;
+  "dd.mm.yyyy") alias history='omz_history -E' ;;
+  "yyyy-mm-dd") alias history='omz_history -i' ;;
+  "") alias history='omz_history' ;;
+  *) alias history="omz_history -t '$HIST_STAMPS'" ;;
+esac
+
+## History file configuration
+[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
+HISTSIZE=50000
+SAVEHIST=10000
+
+## History command configuration
+setopt extended_history       # record timestamp of command in HISTFILE
+setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
+setopt hist_ignore_dups       # ignore duplicated commands history list
+setopt hist_ignore_space      # ignore commands that start with space
+setopt hist_verify            # show command with history expansion to user before running it
+setopt inc_append_history     # add commands to HISTFILE in order of execution
+setopt share_history          # share command history data

+ 93 - 0
lib/key-bindings.zsh

@@ -0,0 +1,93 @@
+# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html
+# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins
+# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets
+
+# Make sure that the terminal is in application mode when zle is active, since
+# only then values from $terminfo are valid
+if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
+  function zle-line-init() {
+    echoti smkx
+  }
+  function zle-line-finish() {
+    echoti rmkx
+  }
+  zle -N zle-line-init
+  zle -N zle-line-finish
+fi
+
+bindkey -e                                            # Use emacs key bindings
+
+bindkey '\ew' kill-region                             # [Esc-w] - Kill from the cursor to the mark
+bindkey -s '\el' 'ls\n'                               # [Esc-l] - run command: ls
+bindkey '^r' history-incremental-search-backward      # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
+if [[ "${terminfo[kpp]}" != "" ]]; then
+  bindkey "${terminfo[kpp]}" up-line-or-history       # [PageUp] - Up a line of history
+fi
+if [[ "${terminfo[knp]}" != "" ]]; then
+  bindkey "${terminfo[knp]}" down-line-or-history     # [PageDown] - Down a line of history
+fi
+
+# start typing + [Up-Arrow] - fuzzy find history forward
+if [[ "${terminfo[kcuu1]}" != "" ]]; then
+  autoload -U up-line-or-beginning-search
+  zle -N up-line-or-beginning-search
+  bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
+fi
+# start typing + [Down-Arrow] - fuzzy find history backward
+if [[ "${terminfo[kcud1]}" != "" ]]; then
+  autoload -U down-line-or-beginning-search
+  zle -N down-line-or-beginning-search
+  bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
+fi
+
+if [[ "${terminfo[khome]}" != "" ]]; then
+  bindkey "${terminfo[khome]}" beginning-of-line      # [Home] - Go to beginning of line
+fi
+if [[ "${terminfo[kend]}" != "" ]]; then
+  bindkey "${terminfo[kend]}"  end-of-line            # [End] - Go to end of line
+fi
+
+bindkey ' ' magic-space                               # [Space] - do history expansion
+
+bindkey '^[[1;5C' forward-word                        # [Ctrl-RightArrow] - move forward one word
+bindkey '^[[1;5D' backward-word                       # [Ctrl-LeftArrow] - move backward one word
+
+if [[ "${terminfo[kcbt]}" != "" ]]; then
+  bindkey "${terminfo[kcbt]}" reverse-menu-complete   # [Shift-Tab] - move through the completion menu backwards
+fi
+
+bindkey '^?' backward-delete-char                     # [Backspace] - delete backward
+if [[ "${terminfo[kdch1]}" != "" ]]; then
+  bindkey "${terminfo[kdch1]}" delete-char            # [Delete] - delete forward
+else
+  bindkey "^[[3~" delete-char
+  bindkey "^[3;5~" delete-char
+  bindkey "\e[3~" delete-char
+fi
+
+# Edit the current command line in $EDITOR
+autoload -U edit-command-line
+zle -N edit-command-line
+bindkey '\C-x\C-e' edit-command-line
+
+# file rename magick
+bindkey "^[m" copy-prev-shell-word
+
+# consider emacs keybindings:
+
+#bindkey -e  ## emacs key bindings
+#
+#bindkey '^[[A' up-line-or-search
+#bindkey '^[[B' down-line-or-search
+#bindkey '^[^[[C' emacs-forward-word
+#bindkey '^[^[[D' emacs-backward-word
+#
+#bindkey -s '^X^Z' '%-^M'
+#bindkey '^[e' expand-cmd-path
+#bindkey '^[^I' reverse-menu-complete
+#bindkey '^X^N' accept-and-infer-next-history
+#bindkey '^W' kill-region
+#bindkey '^I' complete-word
+## Fix weird sequence that rxvt produces
+#bindkey -s '^[[Z' '\t'
+#

+ 41 - 0
lib/misc.zsh

@@ -0,0 +1,41 @@
+## Load smart urls if available
+# bracketed-paste-magic is known buggy in zsh 5.1.1 (only), so skip it there; see #4434
+autoload -Uz is-at-least
+if [[ $ZSH_VERSION != 5.1.1 ]]; then
+  for d in $fpath; do
+  	if [[ -e "$d/url-quote-magic" ]]; then
+  		if is-at-least 5.1; then
+  			autoload -Uz bracketed-paste-magic
+  			zle -N bracketed-paste bracketed-paste-magic
+  		fi
+  		autoload -Uz url-quote-magic
+  		zle -N self-insert url-quote-magic
+      break
+  	fi
+  done
+fi
+
+## jobs
+setopt long_list_jobs
+
+env_default 'PAGER' 'less'
+env_default 'LESS' '-R'
+
+## super user alias
+alias _='sudo'
+alias please='sudo'
+
+## more intelligent acking for ubuntu users
+if which ack-grep &> /dev/null; then
+  alias afind='ack-grep -il'
+else
+  alias afind='ack -il'
+fi
+
+# only define LC_CTYPE if undefined
+if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then
+	export LC_CTYPE=${LANG%%:*} # pick the first entry from LANG
+fi
+
+# recognize comments
+setopt interactivecomments

+ 9 - 0
lib/nvm.zsh

@@ -0,0 +1,9 @@
+# get the node.js version
+function nvm_prompt_info() {
+  [[ -f "$NVM_DIR/nvm.sh" ]] || return
+  local nvm_prompt
+  nvm_prompt=$(node -v 2>/dev/null)
+  [[ "${nvm_prompt}x" == "x" ]] && return
+  nvm_prompt=${nvm_prompt:1}
+  echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}"
+}

+ 33 - 0
lib/prompt_info_functions.zsh

@@ -0,0 +1,33 @@
+# *_prompt_info functions for usage in your prompt
+#
+# Plugin creators, please add your *_prompt_info function to the list
+# of dummy implementations to help theme creators not receiving errors
+# without the need of implementing conditional clauses.
+#
+# See also lib/bzr.zsh, lib/git.zsh and lib/nvm.zsh for
+# git_prompt_info, bzr_prompt_info and nvm_prompt_info
+
+# Dummy implementations that return false to prevent command_not_found
+# errors with themes, that implement these functions
+# Real implementations will be used when the respective plugins are loaded
+function chruby_prompt_info hg_prompt_info pyenv_prompt_info \
+  rbenv_prompt_info svn_prompt_info vi_mode_prompt_info \
+  virtualenv_prompt_info jenv_prompt_info {
+  return 1
+}
+
+# oh-my-zsh supports an rvm prompt by default
+# get the name of the rvm ruby version
+function rvm_prompt_info() {
+  [ -f $HOME/.rvm/bin/rvm-prompt ] || return 1
+  local rvm_prompt
+  rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
+  [[ "${rvm_prompt}x" == "x" ]] && return 1
+  echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}"
+}
+
+# use this to enable users to see their ruby version, no matter which
+# version management system they use
+function ruby_prompt_info() {
+  echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)
+}

+ 37 - 0
lib/spectrum.zsh

@@ -0,0 +1,37 @@
+#! /bin/zsh
+# A script to make using 256 colors in zsh less painful.
+# P.C. Shyamshankar <sykora@lucentbeing.com>
+# Copied from https://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
+
+typeset -AHg FX FG BG
+
+FX=(
+    reset     "%{%}"
+    bold      "%{%}" no-bold      "%{%}"
+    italic    "%{%}" no-italic    "%{%}"
+    underline "%{%}" no-underline "%{%}"
+    blink     "%{%}" no-blink     "%{%}"
+    reverse   "%{%}" no-reverse   "%{%}"
+)
+
+for color in {000..255}; do
+    FG[$color]="%{[38;5;${color}m%}"
+    BG[$color]="%{[48;5;${color}m%}"
+done
+
+
+ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}
+
+# Show all 256 colors with color number
+function spectrum_ls() {
+  for code in {000..255}; do
+    print -P -- "$code: %{$FG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
+  done
+}
+
+# Show all 256 colors where the background is set to specific color
+function spectrum_bls() {
+  for code in {000..255}; do
+    print -P -- "$code: %{$BG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
+  done
+}

+ 105 - 0
lib/termsupport.zsh

@@ -0,0 +1,105 @@
+# Set terminal window and tab/icon title
+#
+# usage: title short_tab_title [long_window_title]
+#
+# See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
+# Fully supports screen, iterm, and probably most modern xterm and rxvt
+# (In screen, only short_tab_title is used)
+# Limited support for Apple Terminal (Terminal can't set window and tab separately)
+function title {
+  emulate -L zsh
+  setopt prompt_subst
+
+  [[ "$EMACS" == *term* ]] && return
+
+  # if $2 is unset use $1 as default
+  # if it is set and empty, leave it as is
+  : ${2=$1}
+
+  case "$TERM" in
+    cygwin|xterm*|putty*|rxvt*|ansi)
+      print -Pn "\e]2;$2:q\a" # set window name
+      print -Pn "\e]1;$1:q\a" # set tab name
+      ;;
+    screen*)
+      print -Pn "\ek$1:q\e\\" # set screen hardstatus
+      ;;
+    *)
+      if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
+        print -Pn "\e]2;$2:q\a" # set window name
+        print -Pn "\e]1;$1:q\a" # set tab name
+      else
+        # Try to use terminfo to set the title
+        # If the feature is available set title
+        if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then
+	  echoti tsl
+	  print -Pn "$1"
+	  echoti fsl
+	fi
+      fi
+      ;;
+  esac
+}
+
+ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
+ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
+# Avoid duplication of directory in terminals with independent dir display
+if [[ "$TERM_PROGRAM" == Apple_Terminal ]]; then
+  ZSH_THEME_TERM_TITLE_IDLE="%n@%m"
+fi
+
+# Runs before showing the prompt
+function omz_termsupport_precmd {
+  emulate -L zsh
+
+  if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
+    return
+  fi
+
+  title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
+}
+
+# Runs before executing the command
+function omz_termsupport_preexec {
+  emulate -L zsh
+  setopt extended_glob
+
+  if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
+    return
+  fi
+
+  # cmd name only, or if this is sudo or ssh, the next cmd
+  local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
+  local LINE="${2:gs/%/%%}"
+
+  title '$CMD' '%100>...>$LINE%<<'
+}
+
+precmd_functions+=(omz_termsupport_precmd)
+preexec_functions+=(omz_termsupport_preexec)
+
+
+# Keep Apple Terminal.app's current working directory updated
+# Based on this answer: https://superuser.com/a/315029
+# With extra fixes to handle multibyte chars and non-UTF-8 locales
+
+if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
+  # Emits the control sequence to notify Terminal.app of the cwd
+  # Identifies the directory using a file: URI scheme, including
+  # the host name to disambiguate local vs. remote paths.
+  function update_terminalapp_cwd() {
+    emulate -L zsh
+
+    # Percent-encode the pathname.
+    local URL_PATH="$(omz_urlencode -P $PWD)"
+    [[ $? != 0 ]] && return 1
+
+    # Undocumented Terminal.app-specific control sequence
+    printf '\e]7;%s\a' "file://$HOST$URL_PATH"
+  }
+
+  # Use a precmd hook instead of a chpwd hook to avoid contaminating output
+  precmd_functions+=(update_terminalapp_cwd)
+  # Run once to get initial cwd set
+  update_terminalapp_cwd
+fi

+ 55 - 0
lib/theme-and-appearance.zsh

@@ -0,0 +1,55 @@
+# ls colors
+autoload -U colors && colors
+
+# Enable ls colors
+export LSCOLORS="Gxfxcxdxbxegedabagacad"
+
+# TODO organise this chaotic logic
+
+if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
+  # Find the option for using colors in ls, depending on the version
+  if [[ "$OSTYPE" == netbsd* ]]; then
+    # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors);
+    # otherwise, leave ls as is, because NetBSD's ls doesn't support -G
+    gls --color -d . &>/dev/null && alias ls='gls --color=tty'
+  elif [[ "$OSTYPE" == openbsd* ]]; then
+    # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base,
+    # with color and multibyte support) are available from ports.  "colorls"
+    # will be installed on purpose and can't be pulled in by installing
+    # coreutils, so prefer it to "gls".
+    gls --color -d . &>/dev/null && alias ls='gls --color=tty'
+    colorls -G -d . &>/dev/null && alias ls='colorls -G'
+  elif [[ "$OSTYPE" == darwin* ]]; then
+    # this is a good alias, it works by default just using $LSCOLORS
+    ls -G . &>/dev/null && alias ls='ls -G'
+
+    # only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file)
+    # otherwise, gls will use the default color scheme which is ugly af
+    [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty'
+  else
+    # For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
+    if [[ -z "$LS_COLORS" ]]; then
+      (( $+commands[dircolors] )) && eval "$(dircolors -b)"
+    fi
+
+    ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' }
+
+    # Take advantage of $LS_COLORS for completion as well.
+    zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
+  fi
+fi
+
+setopt auto_cd
+setopt multios
+setopt prompt_subst
+
+[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO=""
+
+# Apply theming defaults
+PS1="%n@%m:%~%# "
+
+# git theming default: Variables for theming the git info prompt
+ZSH_THEME_GIT_PROMPT_PREFIX="git:("         # Prefix at the very beginning of the prompt, before the branch name
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"             # At the very end of the prompt
+ZSH_THEME_GIT_PROMPT_DIRTY="*"              # Text to display if the branch is dirty
+ZSH_THEME_GIT_PROMPT_CLEAN=""               # Text to display if the branch is clean

+ 119 - 0
oh-my-zsh.sh

@@ -0,0 +1,119 @@
+# Set ZSH_CACHE_DIR to the path where cache files should be created
+# or else we will use the default cache/
+if [[ -z "$ZSH_CACHE_DIR" ]]; then
+  ZSH_CACHE_DIR="$ZSH/cache"
+fi
+
+# Migrate .zsh-update file to $ZSH_CACHE_DIR
+if [ -f ~/.zsh-update ] && [ ! -f ${ZSH_CACHE_DIR}/.zsh-update ]; then
+    mv ~/.zsh-update ${ZSH_CACHE_DIR}/.zsh-update
+fi
+
+# Check for updates on initial load...
+if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
+  env ZSH=$ZSH ZSH_CACHE_DIR=$ZSH_CACHE_DIR DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
+fi
+
+# Initializes Oh My Zsh
+
+# add a function path
+fpath=($ZSH/functions $ZSH/completions $fpath)
+
+# Load all stock functions (from $fpath files) called below.
+autoload -U compaudit compinit
+
+# Set ZSH_CUSTOM to the path where your custom config files
+# and plugins exists, or else we will use the default custom/
+if [[ -z "$ZSH_CUSTOM" ]]; then
+    ZSH_CUSTOM="$ZSH/custom"
+fi
+
+
+# Load all of the config files in ~/oh-my-zsh that end in .zsh
+# TIP: Add files you don't want in git to .gitignore
+for config_file ($ZSH/lib/*.zsh); do
+  custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}"
+  [ -f "${custom_config_file}" ] && config_file=${custom_config_file}
+  source $config_file
+done
+
+
+is_plugin() {
+  local base_dir=$1
+  local name=$2
+  test -f $base_dir/plugins/$name/$name.plugin.zsh \
+    || test -f $base_dir/plugins/$name/_$name
+}
+# Add all defined plugins to fpath. This must be done
+# before running compinit.
+for plugin ($plugins); do
+  if is_plugin $ZSH_CUSTOM $plugin; then
+    fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
+  elif is_plugin $ZSH $plugin; then
+    fpath=($ZSH/plugins/$plugin $fpath)
+  fi
+done
+
+# Figure out the SHORT hostname
+if [[ "$OSTYPE" = darwin* ]]; then
+  # macOS's $HOST changes with dhcp, etc. Use ComputerName if possible.
+  SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/}
+else
+  SHORT_HOST=${HOST/.*/}
+fi
+
+# Save the location of the current completion dump file.
+if [ -z "$ZSH_COMPDUMP" ]; then
+  ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
+fi
+
+if [[ $ZSH_DISABLE_COMPFIX != true ]]; then
+  # If completion insecurities exist, warn the user
+  if ! compaudit &>/dev/null; then
+    handle_completion_insecurities
+  fi
+  # Load only from secure directories
+  compinit -i -d "${ZSH_COMPDUMP}"
+else
+  # If the user wants it, load from all found directories
+  compinit -u -d "${ZSH_COMPDUMP}"
+fi
+
+# Load all of the plugins that were defined in ~/.zshrc
+for plugin ($plugins); do
+  if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
+    source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
+  elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
+    source $ZSH/plugins/$plugin/$plugin.plugin.zsh
+  fi
+done
+
+# Load all of your custom configurations from custom/
+for config_file ($ZSH_CUSTOM/*.zsh(N)); do
+  source $config_file
+done
+unset config_file
+
+# Load the theme
+if [[ "$ZSH_THEME" == "random" ]]; then
+  if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
+    themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
+  else
+    themes=($ZSH/themes/*zsh-theme)
+  fi
+  N=${#themes[@]}
+  ((N=(RANDOM%N)+1))
+  RANDOM_THEME=${themes[$N]}
+  source "$RANDOM_THEME"
+  echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
+else
+  if [ ! "$ZSH_THEME" = ""  ]; then
+    if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
+      source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
+    elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
+      source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
+    else
+      source "$ZSH/themes/$ZSH_THEME.zsh-theme"
+    fi
+  fi
+fi

+ 8 - 0
plugins/adb/README.md

@@ -0,0 +1,8 @@
+# adb autocomplete plugin
+
+* Adds autocomplete options for all adb commands.
+* Add autocomplete for `adb -s`
+
+## Requirements
+
+In order to make this work, you will need to have the Android adb tools set up in your path.

+ 62 - 0
plugins/adb/_adb

@@ -0,0 +1,62 @@
+#compdef adb
+#autoload
+
+# in order to make this work, you will need to have the android adb tools
+
+# adb zsh completion, based on homebrew completion
+
+local -a _1st_arguments
+_1st_arguments=(
+'bugreport:return all information from the device that should be included in a bug report.'
+'connect:connect to a device via TCP/IP Port 5555 is default.'
+'devices:list all connected devices'
+'disconnect:disconnect from a TCP/IP device. Port 5555 is default.'
+'emu:run emulator console command'
+'forward:forward socket connections'
+'get-devpath:print the device path'
+'get-serialno:print the serial number of the device'
+'get-state:print the current state of the device: offline | bootloader | device'
+'help:show the help message'
+'install:push this package file to the device and install it'
+'jdwp:list PIDs of processes hosting a JDWP transport'
+'keygen:generate adb public/private key'
+'kill-server:kill the server if it is running'
+'logcat:view device log'
+'pull:copy file/dir from device'
+'push:copy file/dir to device'
+'reboot:reboots the device, optionally into the bootloader or recovery program'
+'reboot-bootloader:reboots the device into the bootloader'
+'remount:remounts the partitions on the device read-write'
+'root:restarts the adbd daemon with root permissions'
+'sideload:push a ZIP to device and install it'
+'shell:run remote shell interactively'
+'sync:copy host->device only if changed (-l means list but dont copy)'
+'start-server:ensure that there is a server running'
+'tcpip:restart host adb in tcpip mode'
+'uninstall:remove this app package from the device'
+'usb:restart the adbd daemon listing on USB'
+'version:show version num'
+'wait-for-device:block until device is online'
+)
+
+local expl
+local -a pkgs installed_pkgs
+
+_arguments \
+	'-s[devices]:specify device:->specify_device' \
+	'*:: :->subcmds' && return 0
+
+case "$state" in
+	specify_device)
+	_values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \
+		{sub(/ +/," ",$0);gsub(":","\\:",$1); printf "%s[%s] ",$1, $NF}'):-""}
+	return
+	;;
+esac
+
+if (( CURRENT == 1 )); then
+	_describe -t commands "adb subcommand" _1st_arguments
+	return
+fi
+
+_files

+ 12 - 0
plugins/ant/README.md

@@ -0,0 +1,12 @@
+# Ant
+
+This plugin provides completion for [Ant](https://ant.apache.org/).
+
+To use it add ant to the plugins array in your zshrc file.
+
+```bash
+plugins=(... ant)
+```
+
+It caches ant targets in a file named `.ant_targets`, you might want to add that to
+your `.gitignore` file.

+ 16 - 0
plugins/ant/ant.plugin.zsh

@@ -0,0 +1,16 @@
+_ant_does_target_list_need_generating () {
+  [ ! -f .ant_targets ] && 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
+    	ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets
+    fi
+    compadd -- `cat .ant_targets`
+  fi
+}
+
+compdef _ant ant

+ 19 - 0
plugins/apache2-macports/README.md

@@ -0,0 +1,19 @@
+## APACHE2 MACPORTS PLUGIN
+
+
+---
+
+### FEATURES
+
+| Alias          | Function                                                                       | Description           |
+|:--------------:|:-------------------------------------------------------------------------------|----------------------:|
+| apache2restart | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart | Restart apache daemon |
+| apache2start   | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start   | Start apache daemon   |
+| apache2stop    | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop    | Stop apache daemon    |
+
+---
+
+### CONTRIBUTORS
+ - Alexander Rinass (alex@rinass.net)
+
+---

+ 6 - 0
plugins/apache2-macports/apache2-macports.plugin.zsh

@@ -0,0 +1,6 @@
+# commands to control local apache2 server installation
+# paths are for osx installation via macports
+
+alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start'
+alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop'
+alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart'

+ 5 - 0
plugins/arcanist/README.md

@@ -0,0 +1,5 @@
+## arcanist
+
+**Maintainer:** [@emzar](https://github.com/emzar)
+
+This plugin adds many useful aliases.

+ 21 - 0
plugins/arcanist/arcanist.plugin.zsh

@@ -0,0 +1,21 @@
+#
+# Aliases
+# (sorted alphabetically)
+#
+
+alias ara='arc amend'
+alias arb='arc branch'
+alias arco='arc cover'
+alias arci='arc commit'
+
+alias ard='arc diff'
+alias ardnu='arc diff --nounit'
+alias ardnupc='arc diff --nounit --plan-changes'
+alias ardpc='arc diff --plan-changes'
+
+alias are='arc export'
+alias arh='arc help'
+alias arl='arc land'
+alias arli='arc lint'
+alias arls='arc list'
+alias arpa='arc patch'

+ 146 - 0
plugins/archlinux/README.md

@@ -0,0 +1,146 @@
+# Archlinux plugin
+
+## Features
+
+#### YAY
+
+| Alias   | Command                            | Description                                                         |
+|---------|------------------------------------|---------------------------------------------------------------------|
+| yaconf  | yay -Pg                            | Print current configuration                                         |
+| yain    | yay -S                             | Install packages from the repositories                              |
+| yains   | yay -U                             | Install a package from a local file                                 |
+| yainsd  | yay -S --asdeps                    | Install packages as dependencies of another package                 |
+| yaloc   | yay -Qi                            | Display information about a package in the local database           |
+| yalocs  | yay -Qs                            | Search for packages in the local database                           |
+| yalst   | yay -Qe                            | List installed packages including from AUR (tagged as "local")      |
+| yamir   | yay -Syy                           | Force refresh of all package lists after updating mirrorlist        |
+| yaorph  | yay -Qtd                           | Remove orphans using yaourt                                         |
+| yare    | yay -R                             | Remove packages, keeping its settings and dependencies              |
+| yarem   | yay -Rns                           | Remove packages, including its settings and unneeded dependencies   |
+| yarep   | yay -Si                            | Display information about a package in the repositories             |
+| yareps  | yay -Ss                            | Search for packages in the repositories                             |
+| yaupg   | yay -Syu                           | Sync with repositories before upgrading packages                    |
+| yasu    | yay -Syu --no-confirm              | Same as `yaupg`, but without confirmation                           |
+
+#### TRIZEN
+
+| Alias   | Command                            | Description                                                         |
+|---------|------------------------------------|---------------------------------------------------------------------|
+| trconf  | trizen -C                          | Fix all configuration files with vimdiff                            |
+| trin    | trizen -S                          | Install packages from the repositories                              |
+| trins   | trizen -U                          | Install a package from a local file                                 |
+| trinsd  | trizen -S --asdeps                 | Install packages as dependencies of another package                 |
+| trloc   | trizen -Qi                         | Display information about a package in the local database           |
+| trlocs  | trizen -Qs                         | Search for packages in the local database                           |
+| trlst   | trizen -Qe                         | List installed packages including from AUR (tagged as "local")      |
+| trmir   | trizen -Syy                        | Force refresh of all package lists after updating mirrorlist        |
+| trorph  | trizen -Qtd                        | Remove orphans using yaourt                                         |
+| trre    | trizen -R                          | Remove packages, keeping its settings and dependencies              |
+| trrem   | trizen -Rns                        | Remove packages, including its settings and unneeded dependencies   |
+| trrep   | trizen -Si                         | Display information about a package in the repositories             |
+| trreps  | trizen -Ss                         | Search for packages in the repositories                             |
+| trupd   | trizen -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
+| trupd   | trizen -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
+| trupd   | trizen -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
+| trupd   | trizen -Sy                         | Update and refresh the local package database                       |
+| trupg   | trizen -Syua                       | Sync with repositories before upgrading all packages (from AUR too) |
+| trsu    | trizen -Syua --no-confirm          | Same as `trupg`, but without confirmation                           |
+| upgrade | trizen -Syu                        | Sync with repositories before upgrading packages                    |
+
+#### YAOURT
+
+| Alias   | Command                            | Description                                                         |
+|---------|------------------------------------|---------------------------------------------------------------------|
+| yaconf  | yaourt -C                          | Fix all configuration files with vimdiff                            |
+| yain    | yaourt -S                          | Install packages from the repositories                              |
+| yains   | yaourt -U                          | Install a package from a local file                                 |
+| yainsd  | yaourt -S --asdeps                 | Install packages as dependencies of another package                 |
+| yaloc   | yaourt -Qi                         | Display information about a package in the local database           |
+| yalocs  | yaourt -Qs                         | Search for packages in the local database                           |
+| yalst   | yaourt -Qe                         | List installed packages including from AUR (tagged as "local")      |
+| yamir   | yaourt -Syy                        | Force refresh of all package lists after updating mirrorlist        |
+| yaorph  | yaourt -Qtd                        | Remove orphans using yaourt                                         |
+| yare    | yaourt -R                          | Remove packages, keeping its settings and dependencies              |
+| yarem   | yaourt -Rns                        | Remove packages, including its settings and unneeded dependencies   |
+| yarep   | yaourt -Si                         | Display information about a package in the repositories             |
+| yareps  | yaourt -Ss                         | Search for packages in the repositories                             |
+| yaupd   | yaourt -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
+| yaupd   | yaourt -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
+| yaupd   | yaourt -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
+| yaupd   | yaourt -Sy                         | Update and refresh the local package database                       |
+| yaupg   | yaourt -Syua                       | Sync with repositories before upgrading all packages (from AUR too) |
+| yasu    | yaourt -Syua --no-confirm          | Same as `yaupg`, but without confirmation                           |
+| upgrade | yaourt -Syu                        | Sync with repositories before upgrading packages                    |
+
+#### PACAUR
+
+| Alias   | Command                            | Description                                                         |
+|---------|------------------------------------|---------------------------------------------------------------------|
+| pain    | pacaur -S                          | Install packages from the repositories                              |
+| pains   | pacaur -U                          | Install a package from a local file                                 |
+| painsd  | pacaur -S --asdeps                 | Install packages as dependencies of another package                 |
+| paloc   | pacaur -Qi                         | Display information about a package in the local database           |
+| palocs  | pacaur -Qs                         | Search for packages in the local database                           |
+| palst   | pacaur -Qe                         | List installed packages including from AUR (tagged as "local")      |
+| pamir   | pacaur -Syy                        | Force refresh of all package lists after updating mirrorlist        |
+| paorph  | pacaur -Qtd                        | Remove orphans using pacaur                                         |
+| pare    | pacaur -R                          | Remove packages, keeping its settings and dependencies              |
+| parem   | pacaur -Rns                        | Remove packages, including its settings and unneeded dependencies   |
+| parep   | pacaur -Si                         | Display information about a package in the repositories             |
+| pareps  | pacaur -Ss                         | Search for packages in the repositories                             |
+| paupd   | pacaur -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
+| paupd   | pacaur -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
+| paupd   | pacaur -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
+| paupd   | pacaur -Sy                         | Update and refresh the local package database                       |
+| paupg   | pacaur -Syua                       | Sync with repositories before upgrading all packages (from AUR too) |
+| pasu    | pacaur -Syua --no-confirm          | Same as `paupg`, but without confirmation                           |
+| upgrade | pacaur -Syu                        | Sync with repositories before upgrading packages                    |
+
+#### PACMAN
+
+| Alias        | Command                                 | Description                                                  |
+|--------------|-----------------------------------------|--------------------------------------------------------------|
+| pacin        | sudo pacman -S                          | Install packages from the repositories                       |
+| pacins       | sudo pacman -U                          | Install a package from a local file                          |
+| pacinsd      | sudo pacman -S --asdeps                 | Install packages as dependencies of another package          |
+| pacloc       | pacman -Qi                              | Display information about a package in the local database    |
+| paclocs      | pacman -Qs                              | Search for packages in the local database                    |
+| paclsorphans | sudo pacman -Qdt                        | List all orphaned packages                                   |
+| pacmir       | sudo pacman -Syy                        | Force refresh of all package lists after updating mirrorlist |
+| pacre        | sudo pacman -R                          | Remove packages, keeping its settings and dependencies       |
+| pacrem       | sudo pacman -Rns                        | Remove packages, including its settings and dependencies     |
+| pacrep       | pacman -Si                              | Display information about a package in the repositories      |
+| pacreps      | pacman -Ss                              | Search for packages in the repositories                      |
+| pacrmorphans | sudo pacman -Rs $(pacman -Qtdq)         | Delete all orphaned packages                                 |
+| pacupd       | sudo pacman -Sy && sudo abs && sudo aur | Update and refresh the local package, ABS and AUR databases  |
+| pacupd       | sudo pacman -Sy && sudo abs             | Update and refresh the local package and ABS databases       |
+| pacupd       | sudo pacman -Sy && sudo aur             | Update and refresh the local package and AUR databases       |
+| pacupd       | sudo pacman -Sy                         | Update and refresh the local package database                |
+| pacupg       | sudo pacman -Syu                        | Sync with repositories before upgrading packages             |
+| upgrade      | sudo pacman -Syu                        | Sync with repositories before upgrading packages             |
+| pacfileupg   | sudo pacman -Fy                         | Download fresh package databases from the server             |
+| pacfiles     | pacman -Fs                              | Search package file names for matching strings               |
+| pacls        | pacman -Ql                              | List files in a package                                      |
+| pacown       | pacman -Qo                              | Show which package owns a file                               |
+
+| Function       | Description                                          |
+|----------------|------------------------------------------------------|
+| pacdisowned    | List all disowned files in your system               |
+| paclist        | List all installed packages with a short description |
+| pacmanallkeys  | Get all keys for developers and trusted users        |
+| pacmansignkeys | Locally trust all keys passed as parameters          |
+| pacweb         | Open the website of an ArchLinux package             |
+
+---
+
+## Contributors
+
+- Benjamin Boudreau - dreurmail@gmail.com
+- Celso Miranda - contacto@celsomiranda.net
+- KhasMek - Boushh@gmail.com
+- Martin Putniorz - mputniorz@gmail.com
+- MatthR3D - matthr3d@gmail.com
+- ornicar - thibault.duplessis@gmail.com
+- Juraj Fiala - doctorjellyface@riseup.net
+- Majora320 (Moses Miller) - Majora320@gmail.com
+- Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info

+ 219 - 0
plugins/archlinux/archlinux.plugin.zsh

@@ -0,0 +1,219 @@
+if (( $+commands[trizen] )); then
+  alias trconf='trizen -C'
+  alias trupg='trizen -Syua'
+  alias trsu='trizen -Syua --noconfirm'
+  alias trin='trizen -S'
+  alias trins='trizen -U'
+  alias trre='trizen -R'
+  alias trrem='trizen -Rns'
+  alias trrep='trizen -Si'
+  alias trreps='trizen -Ss'
+  alias trloc='trizen -Qi'
+  alias trlocs='trizen -Qs'
+  alias trlst='trizen -Qe'
+  alias trorph='trizen -Qtd'
+  alias trinsd='trizen -S --asdeps'
+  alias trmir='trizen -Syy'
+
+
+  if (( $+commands[abs] && $+commands[aur] )); then
+    alias trupd='trizen -Sy && sudo abs && sudo aur'
+  elif (( $+commands[abs] )); then
+    alias trupd='trizen -Sy && sudo abs'
+  elif (( $+commands[aur] )); then
+    alias trupd='trizen -Sy && sudo aur'
+  else
+    alias trupd='trizen -Sy'
+  fi
+fi
+
+if (( $+commands[yaourt] )); then
+  alias yaconf='yaourt -C'
+  alias yaupg='yaourt -Syua'
+  alias yasu='yaourt -Syua --noconfirm'
+  alias yain='yaourt -S'
+  alias yains='yaourt -U'
+  alias yare='yaourt -R'
+  alias yarem='yaourt -Rns'
+  alias yarep='yaourt -Si'
+  alias yareps='yaourt -Ss'
+  alias yaloc='yaourt -Qi'
+  alias yalocs='yaourt -Qs'
+  alias yalst='yaourt -Qe'
+  alias yaorph='yaourt -Qtd'
+  alias yainsd='yaourt -S --asdeps'
+  alias yamir='yaourt -Syy'
+
+
+  if (( $+commands[abs] && $+commands[aur] )); then
+    alias yaupd='yaourt -Sy && sudo abs && sudo aur'
+  elif (( $+commands[abs] )); then
+    alias yaupd='yaourt -Sy && sudo abs'
+  elif (( $+commands[aur] )); then
+    alias yaupd='yaourt -Sy && sudo aur'
+  else
+    alias yaupd='yaourt -Sy'
+  fi
+fi
+
+if (( $+commands[yay] )); then
+  alias yaconf='yay -Pg'
+  alias yaupg='yay -Syu'
+  alias yasu='yay -Syu --noconfirm'
+  alias yain='yay -S'
+  alias yains='yay -U'
+  alias yare='yay -R'
+  alias yarem='yay -Rns'
+  alias yarep='yay -Si'
+  alias yareps='yay -Ss'
+  alias yaloc='yay -Qi'
+  alias yalocs='yay -Qs'
+  alias yalst='yay -Qe'
+  alias yaorph='yay -Qtd'
+  alias yainsd='yay -S --asdeps'
+  alias yamir='yay -Syy'
+
+
+  if (( $+commands[abs] && $+commands[aur] )); then
+    alias yaupd='yay -Sy && sudo abs && sudo aur'
+  elif (( $+commands[abs] )); then
+    alias yaupd='yay -Sy && sudo abs'
+  elif (( $+commands[aur] )); then
+    alias yaupd='yay -Sy && sudo aur'
+  else
+    alias yaupd='yay -Sy'
+  fi
+fi
+
+if (( $+commands[pacaur] )); then
+  alias paupg='pacaur -Syu'
+  alias pasu='pacaur -Syu --noconfirm'
+  alias pain='pacaur -S'
+  alias pains='pacaur -U'
+  alias pare='pacaur -R'
+  alias parem='pacaur -Rns'
+  alias parep='pacaur -Si'
+  alias pareps='pacaur -Ss'
+  alias paloc='pacaur -Qi'
+  alias palocs='pacaur -Qs'
+  alias palst='pacaur -Qe'
+  alias paorph='pacaur -Qtd'
+  alias painsd='pacaur -S --asdeps'
+  alias pamir='pacaur -Syy'
+
+  if (( $+commands[abs] && $+commands[aur] )); then
+    alias paupd='pacaur -Sy && sudo abs && sudo aur'
+  elif (( $+commands[abs] )); then
+    alias paupd='pacaur -Sy && sudo abs'
+  elif (( $+commands[aur] )); then
+    alias paupd='pacaur -Sy && sudo aur'
+  else
+    alias paupd='pacaur -Sy'
+  fi
+fi
+
+if (( $+commands[trizen] )); then
+  function upgrade() {
+    trizen -Syu
+  }
+elif (( $+commands[pacaur] )); then
+  function upgrade() {
+    pacaur -Syu
+  }
+elif (( $+commands[yaourt] )); then
+  function upgrade() {
+    yaourt -Syu
+  }
+elif (( $+commands[yay] )); then
+  function upgrade() {
+    yay -Syu
+  }
+else
+  function upgrade() {
+    sudo pacman -Syu
+  }
+fi
+
+# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
+alias pacupg='sudo pacman -Syu'
+alias pacin='sudo pacman -S'
+alias pacins='sudo pacman -U'
+alias pacre='sudo pacman -R'
+alias pacrem='sudo pacman -Rns'
+alias pacrep='pacman -Si'
+alias pacreps='pacman -Ss'
+alias pacloc='pacman -Qi'
+alias paclocs='pacman -Qs'
+alias pacinsd='sudo pacman -S --asdeps'
+alias pacmir='sudo pacman -Syy'
+alias paclsorphans='sudo pacman -Qdt'
+alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)'
+alias pacfileupg='sudo pacman -Fy'
+alias pacfiles='pacman -Fs'
+alias pacls='pacman -Ql'
+alias pacown='pacman -Qo'
+
+
+if (( $+commands[abs] && $+commands[aur] )); then
+  alias pacupd='sudo pacman -Sy && sudo abs && sudo aur'
+elif (( $+commands[abs] )); then
+  alias pacupd='sudo pacman -Sy && sudo abs'
+elif (( $+commands[aur] )); then
+  alias pacupd='sudo pacman -Sy && sudo aur'
+else
+  alias pacupd='sudo pacman -Sy'
+fi
+
+function paclist() {
+  # Source: https://bbs.archlinux.org/viewtopic.php?id=93683
+  LC_ALL=C pacman -Qei $(pacman -Qu | cut -d " " -f 1) | \
+    awk 'BEGIN {FS=":"} /^Name/{printf("\033[1;36m%s\033[1;37m", $2)} /^Description/{print $2}'
+}
+
+function pacdisowned() {
+  emulate -L zsh
+
+  tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$
+  db=$tmp/db
+  fs=$tmp/fs
+
+  mkdir "$tmp"
+  trap  'rm -rf "$tmp"' EXIT
+
+  pacman -Qlq | sort -u > "$db"
+
+  find /bin /etc /lib /sbin /usr ! -name lost+found \
+    \( -type d -printf '%p/\n' -o -print \) | sort > "$fs"
+
+  comm -23 "$fs" "$db"
+}
+
+function pacmanallkeys() {
+  emulate -L zsh
+  curl -s https://www.archlinux.org/people/{developers,trustedusers}/ | \
+    awk -F\" '(/pgp.mit.edu/) { sub(/.*search=0x/,""); print $1}' | \
+    xargs sudo pacman-key --recv-keys
+}
+
+function pacmansignkeys() {
+  emulate -L zsh
+  for key in $*; do
+    sudo pacman-key --recv-keys $key
+    sudo pacman-key --lsign-key $key
+    printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
+      --no-permission-warning --command-fd 0 --edit-key $key
+  done
+}
+
+if (( $+commands[xdg-open] )); then
+  function pacweb() {
+    pkg="$1"
+    infos="$(pacman -Si "$pkg")"
+    if [[ -z "$infos" ]]; then
+      return
+    fi
+    repo="$(grep '^Repo' <<< "$infos" | grep -oP '[^ ]+$')"
+    arch="$(grep '^Arch' <<< "$infos" | grep -oP '[^ ]+$')"
+    xdg-open "https://www.archlinux.org/packages/$repo/$arch/$pkg/" &>/dev/null
+  }
+fi

+ 27 - 0
plugins/asdf/README.md

@@ -0,0 +1,27 @@
+## asdf
+
+**Maintainer:** [@RobLoach](https://github.com/RobLoach)
+
+Adds integration with [asdf](https://github.com/asdf-vm/asdf), the extendable version manager, with support for Ruby, Node.js, Elixir, Erlang and more.
+
+### Installation
+
+1. Enable the plugin by adding it to your `plugins` definition in `~/.zshrc`.
+
+  ```
+  plugins=(asdf)
+  ```
+
+2. [Install asdf](https://github.com/asdf-vm/asdf#setup) by running the following:
+  ```
+  git clone https://github.com/asdf-vm/asdf.git ~/.asdf
+  ```
+
+### Usage
+
+See the [asdf usage documentation](https://github.com/asdf-vm/asdf#usage) for information on how to use asdf:
+
+```
+asdf plugin-add nodejs git@github.com:asdf-vm/asdf-nodejs.git
+asdf install nodejs 5.9.1
+```

+ 17 - 0
plugins/asdf/asdf.plugin.zsh

@@ -0,0 +1,17 @@
+# Find where asdf should be installed
+ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}"
+
+# If not found, check for Homebrew package
+if [[ ! -d $ASDF_DIR ]] && (( $+commands[brew] )); then
+   ASDF_DIR="$(brew --prefix asdf)"
+fi
+
+# Load command
+if [[ -f "$ASDF_DIR/asdf.sh" ]]; then
+    . "$ASDF_DIR/asdf.sh"
+
+    # Load completions
+    if [[ -f "$ASDF_DIR/completions/asdf.bash" ]]; then
+        . "$ASDF_DIR/completions/asdf.bash"
+    fi
+fi

+ 43 - 0
plugins/autoenv/autoenv.plugin.zsh

@@ -0,0 +1,43 @@
+# Activates autoenv or reports its failure
+() {
+if ! type autoenv_init >/dev/null; then
+  for d (~/.autoenv ~/.local/bin /usr/local/opt/autoenv /usr/local/bin); do
+    if [[ -e $d/activate.sh ]]; then
+      autoenv_dir=$d
+      break
+    fi
+  done
+  if [[ -z $autoenv_dir ]]; then 
+    cat <<END >&2
+-------- AUTOENV ---------
+Could not locate autoenv installation.
+Please check if autoenv is correctly installed.
+In the meantime the autoenv plugin is DISABLED.
+--------------------------
+END
+    return 1
+  fi
+  source $autoenv_dir/activate.sh
+fi
+}
+[[ $? != 0 ]] && return $?
+
+# 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"
+    if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then
+        if workon | grep -q "$venv"; then
+            workon "$venv"
+        else
+            echo -n "Create virtualenv $venv now? (Yn) "
+            read answer
+            if [[ "$answer" == "Y" ]]; then
+                mkvirtualenv "$venv"
+            fi
+        fi
+    fi
+}

+ 11 - 0
plugins/autojump/README.md

@@ -0,0 +1,11 @@
+# Autojump plugin
+
+This plugin loads the [autojump navigation tool](https://github.com/wting/autojump).
+
+To use it, add `autojump` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... autojump)
+```
+
+More info on the usage: https://github.com/wting/autojump

+ 23 - 0
plugins/autojump/autojump.plugin.zsh

@@ -0,0 +1,23 @@
+if [ $commands[autojump] ]; then # check if autojump is installed
+  if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
+    . $HOME/.autojump/etc/profile.d/autojump.zsh
+  elif [ -f $HOME/.autojump/share/autojump/autojump.zsh ]; then # another manual user-local installation
+    . $HOME/.autojump/share/autojump/autojump.zsh
+  elif [ -f $HOME/.nix-profile/etc/profile.d/autojump.zsh ]; then # nix installation
+    . $HOME/.nix-profile/etc/profile.d/autojump.zsh
+  elif [ -f /run/current-system/sw/share/autojump/autojump.zsh ]; then # nixos installation
+    . /run/current-system/sw/share/autojump/autojump.zsh
+  elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
+    . /usr/share/autojump/autojump.zsh
+  elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
+    . /etc/profile.d/autojump.zsh
+  elif [ -f /etc/profile.d/autojump.sh ]; then # gentoo installation
+    . /etc/profile.d/autojump.sh
+  elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
+    . /usr/local/share/autojump/autojump.zsh
+  elif [ -f /opt/local/etc/profile.d/autojump.sh ]; then # mac os x with ports
+    . /opt/local/etc/profile.d/autojump.sh
+  elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.sh ]; then # mac os x with brew
+    . `brew --prefix`/etc/autojump.sh
+  fi
+fi

+ 8 - 0
plugins/autopep8/README.md

@@ -0,0 +1,8 @@
+# autopep8 plugin
+
+This plugin adds completion for [autopep8](https://pypi.org/project/autopep8/), a tool that automatically formats Python code to conform to the [PEP 8](http://www.python.org/dev/peps/pep-0008/) style guide.
+
+To use it, add autopep8 to the plugins array of your zshrc file:
+```
+plugins=(... autopep8)
+```

+ 32 - 0
plugins/autopep8/_autopep8

@@ -0,0 +1,32 @@
+#compdef autopep8
+#
+# this is zsh completion function file.
+# generated by genzshcomp(ver: 0.5.1)
+#
+
+typeset -A opt_args
+local context state line
+
+_arguments -s -S \
+  "--help[show this help message and exit]:" \
+  "-h[show this help message and exit]:" \
+  "--version[show program's version number and exit]:" \
+  "--verbose[print verbose messages; multiple -v result in more verbose messages]" \
+  "-v[print verbose messages; multiple -v result in more verbose messages]" \
+  "--diff[print the diff for the fixed source]" \
+  "-d[print the diff for the fixed source]" \
+  "--in-place[make changes to files in place]" \
+  "-i[make changes to files in place]" \
+  "--recursive[run recursively; must be used with --in-place or --diff]" \
+  "-r[run recursively; must be used with --in-place or --diff]" \
+  "--jobs[number of parallel jobs; match CPU count if value is less than 1]::n        number of parallel jobs; match CPU count if value is:_files" \
+  "-j[number of parallel jobs; match CPU count if value is less than 1]::n        number of parallel jobs; match CPU count if value is:_files" \
+  "--pep8-passes[maximum number of additional pep8 passes (default: 100)]::n:_files" \
+  "-p[maximum number of additional pep8 passes (default: 100)]::n:_files" \
+  "-a[-a result in more aggressive changes]::result:_files" \
+  "--exclude[exclude files/directories that match these comma- separated globs]::globs:_files" \
+  "--list-fixes[list codes for fixes; used by --ignore and --select]" \
+  "--ignore[do not fix these errors/warnings (default E226,E24)]::errors:_files" \
+  "--select[fix only these errors/warnings (e.g. E4,W)]::errors:_files" \
+  "--max-line-length[set maximum allowed line length (default: 79)]::n:_files" \
+  "*::args:_files"

+ 20 - 0
plugins/aws/README.md

@@ -0,0 +1,20 @@
+# aws
+
+This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html)
+and a few utilities to manage AWS profiles: a function to change profiles with autocompletion support
+and a function to get the current AWS profile. The current AWS profile is also displayed in `RPROMPT`.
+
+To use it, add `aws` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... aws)
+```
+
+## Plugin commands
+
+* `asp <profile>`: Sets `AWS_PROFILE` and `AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
+It also adds it to your RPROMPT.
+
+* `agp`: Gets the current value of `AWS_PROFILE`.
+
+* `aws_profiles`: Lists the available profiles in the file referenced in `AWS_CONFIG_FILE` (default: ~/.aws/config). Used to provide completion for the `asp` function.

+ 49 - 0
plugins/aws/aws.plugin.zsh

@@ -0,0 +1,49 @@
+_homebrew-installed() {
+  type brew &> /dev/null
+  _xit=$?
+  if [ $_xit -eq 0 ];then
+        # ok , we have brew installed
+        # speculatively we check default brew prefix
+        if [ -h  /usr/local/opt/awscli ];then
+                _brew_prefix="/usr/local/opt/awscli"
+        else
+                # ok , it is not default prefix
+                # this call to brew is expensive ( about 400 ms ), so at least let's make it only once
+                _brew_prefix=$(brew --prefix awscli)
+        fi
+        return 0
+   else
+        return $_xit
+   fi
+}
+
+_awscli-homebrew-installed() {
+  [ -r $_brew_prefix/libexec/bin/aws_zsh_completer.sh ] &> /dev/null
+}
+
+function agp {
+  echo $AWS_PROFILE
+}
+
+function asp {
+  local rprompt=${RPROMPT/<aws:$(agp)>/}
+
+  export AWS_DEFAULT_PROFILE=$1
+  export AWS_PROFILE=$1
+
+  export RPROMPT="<aws:$AWS_PROFILE>$rprompt"
+}
+
+function aws_profiles {
+  reply=($(grep profile "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9_\.-]*\).*/\1/'))
+}
+compctl -K aws_profiles asp
+
+if which aws_zsh_completer.sh &>/dev/null; then
+  _aws_zsh_completer_path=$(which aws_zsh_completer.sh 2>/dev/null)
+elif _homebrew-installed && _awscli-homebrew-installed; then
+  _aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh
+fi
+
+[ -n "$_aws_zsh_completer_path" ] && [ -x $_aws_zsh_completer_path ] && source $_aws_zsh_completer_path
+unset _aws_zsh_completer_path

+ 13 - 0
plugins/battery/README.md

@@ -0,0 +1,13 @@
+# Battery Plugin
+
+This plugin adds some functions you can use to display battery information in your custom theme.
+
+To use, add `battery` to the list of plugins in your `.zshrc` file:
+
+`plugins=(... battery)`
+
+Then, add the `battery_pct_prompt` function to your custom theme. For example:
+
+```
+RPROMPT='$(battery_pct_prompt)'
+```

+ 160 - 0
plugins/battery/battery.plugin.zsh

@@ -0,0 +1,160 @@
+###########################################
+# Battery plugin for oh-my-zsh            #
+# Original Author: Peter hoeg (peterhoeg) #
+# Email: peter@speartail.com              #
+###########################################
+# Author: Sean Jones (neuralsandwich)     #
+# Email: neuralsandwich@gmail.com         #
+# Modified to add support for Apple Mac   #
+###########################################
+
+if [[ "$OSTYPE" = darwin* ]] ; then
+
+  function battery_pct() {
+    local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
+    typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
+    typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
+    integer i=$(((currentcapacity/maxcapacity) * 100))
+    echo $i
+  }
+
+  function plugged_in() {
+    [ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
+  }
+
+  function battery_pct_remaining() {
+    if plugged_in ; then
+      echo "External Power"
+    else
+      battery_pct
+    fi
+  }
+
+  function battery_time_remaining() {
+    local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
+    if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
+      timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
+      if [ $timeremaining -gt 720 ] ; then
+        echo "::"
+      else
+        echo "~$((timeremaining / 60)):$((timeremaining % 60))"
+      fi
+    else
+      echo "∞"
+    fi
+  }
+
+  function battery_pct_prompt () {
+    if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
+      b=$(battery_pct_remaining)
+      if [ $b -gt 50 ] ; then
+        color='green'
+      elif [ $b -gt 20 ] ; then
+        color='yellow'
+      else
+        color='red'
+      fi
+      echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
+    else
+      echo "∞"
+    fi
+  }
+
+  function battery_is_charging() {
+    [[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
+  }
+
+elif [[ "$OSTYPE" = linux*  ]] ; then
+
+  function battery_is_charging() {
+    ! [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
+  }
+
+  function battery_pct() {
+    if (( $+commands[acpi] )) ; then
+      echo "$(acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]')"
+    fi
+  }
+
+  function battery_pct_remaining() {
+    if [ ! $(battery_is_charging) ] ; then
+      battery_pct
+    else
+      echo "External Power"
+    fi
+  }
+
+  function battery_time_remaining() {
+    if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
+      echo $(acpi 2>/dev/null | cut -f3 -d ',')
+    fi
+  }
+
+  function battery_pct_prompt() {
+    b=$(battery_pct_remaining) 
+    if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
+      if [ $b -gt 50 ] ; then
+        color='green'
+      elif [ $b -gt 20 ] ; then
+        color='yellow'
+      else
+        color='red'
+      fi
+      echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
+    else
+      echo "∞"
+    fi
+  }
+
+else
+  # Empty functions so we don't cause errors in prompts
+  function battery_pct_remaining() {
+  }
+
+  function battery_time_remaining() {
+  }
+
+  function battery_pct_prompt() {
+  }
+fi
+
+function battery_level_gauge() {
+  local gauge_slots=${BATTERY_GAUGE_SLOTS:-10};
+  local green_threshold=${BATTERY_GREEN_THRESHOLD:-6};
+  local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-4};
+  local color_green=${BATTERY_COLOR_GREEN:-%F{green}};
+  local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}};
+  local color_red=${BATTERY_COLOR_RED:-%F{red}};
+  local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}};
+  local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['};
+  local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'};
+  local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'▶'};
+  local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'▷'};
+  local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow};
+  local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'};
+
+  local battery_remaining_percentage=$(battery_pct);
+
+  if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
+    local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
+    local empty=$(($gauge_slots - $filled));
+
+    if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
+    elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
+    else local gauge_color=$color_red;
+    fi
+  else
+    local filled=$gauge_slots;
+    local empty=0;
+    filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
+  fi
+
+  local charging=' ' && battery_is_charging && charging=$charging_symbol;
+
+  printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
+  printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled}
+  [[ $filled -lt $gauge_slots ]] && printf ${empty_symbol//\%/\%\%}'%.0s' {1..$empty}
+  printf ${color_reset//\%/\%\%}${battery_suffix//\%/\%\%}${color_reset//\%/\%\%}
+}
+
+

+ 20 - 0
plugins/bbedit/README.md

@@ -0,0 +1,20 @@
+## bbedit
+
+Plugin for BBEdit, an HTML and text editor for Mac OS X
+
+### Requirements
+
+ * [BBEdit](https://www.barebones.com/products/bbedit/)
+ * [BBEdit Command-Line Tools](https://www.barebones.com/support/bbedit/cmd-line-tools.html)
+
+### Usage
+
+ * If the `bb` command is called without an argument, launch BBEdit
+
+ * If `bb` is passed a directory, cd to it and open it in BBEdit
+
+ * If `bb` is passed a file, open it in BBEdit
+
+ * If `bbpb` create a new BBEdit document with the contents of the clipboard
+
+ * If `bbd` alias for BBEdit diff tool

+ 21 - 0
plugins/bbedit/bbedit.plugin.zsh

@@ -0,0 +1,21 @@
+alias bbpb='pbpaste | bbedit --clean --view-top'
+
+alias bbd=bbdiff
+
+#
+# If the bb command is called without an argument, launch BBEdit
+# If bb is passed a directory, cd to it and open it in BBEdit
+# If bb is passed a file, open it in BBEdit
+#
+function bb() {
+    if [[ -z "$1" ]]
+    then
+        bbedit --launch
+    else
+        bbedit "$1"
+        if [[ -d "$1" ]]
+        then
+            cd "$1"
+        fi
+    fi
+}

+ 54 - 0
plugins/bgnotify/README.md

@@ -0,0 +1,54 @@
+# bgnotify zsh plugin
+
+cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux.
+
+Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify)
+
+----------------------------------
+
+## How to use!
+
+Just add bgnotify to your plugins list in your `.zshrc`
+
+- On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier)
+  * `brew install terminal-notifier` (or `gem install terminal-notifier`)
+- On ubuntu you're already all set!
+- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package
+
+
+## Screenshots
+
+**Linux**
+
+![screenshot from 2014-11-07 15 58 36](https://cloud.githubusercontent.com/assets/326829/4962187/256b465c-66da-11e4-927d-cc2fc105e31f.png)
+
+**OS X**
+
+![screenshot 2014-11-08 14 15 12](https://cloud.githubusercontent.com/assets/326829/4965780/19fa3eac-6795-11e4-8ed6-0355711123a9.png)
+
+**Windows**
+
+![screenshot from 2014-11-07 15 55 00](https://cloud.githubusercontent.com/assets/326829/4962159/a2625ca0-66d9-11e4-9e91-c5834913190e.png)
+
+
+## Configuration
+
+One can configure a few things:
+
+- `bgnotify_threshold` sets the notification threshold time (default 6 seconds)
+- `function bgnotify_formatted` lets you change the notification
+
+Use these by adding a function definition before the your call to source. Example:
+
+~~~ sh
+bgnotify_threshold=4  ## set your own notification threshold
+
+function bgnotify_formatted {
+  ## $1=exit_status, $2=command, $3=elapsed_time
+  [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!"
+  bgnotify "$title -- after $3 s" "$2";
+}
+
+plugins=(git bgnotify)  ## add to plugins list
+source $ZSH/oh-my-zsh.sh  ## existing source call
+~~~

+ 77 - 0
plugins/bgnotify/bgnotify.plugin.zsh

@@ -0,0 +1,77 @@
+#!/usr/bin/env zsh
+
+## setup ##
+
+[[ -o interactive ]] || return #interactive only!
+zmodload zsh/datetime || { print "can't load zsh/datetime"; return } # faster than date()
+autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return }
+
+(( ${+bgnotify_threshold} )) || bgnotify_threshold=5 #default 10 seconds
+
+
+## definitions ##
+
+if ! (type bgnotify_formatted | grep -q 'function'); then ## allow custom function override
+  function bgnotify_formatted { ## args: (exit_status, command, elapsed_seconds)
+    elapsed="$(( $3 % 60 ))s"
+    (( $3 >= 60 )) && elapsed="$((( $3 % 3600) / 60 ))m $elapsed"
+    (( $3 >= 3600 )) && elapsed="$(( $3 / 3600 ))h $elapsed"
+    [ $1 -eq 0 ] && bgnotify "#win (took $elapsed)" "$2" || bgnotify "#fail (took $elapsed)" "$2"
+  }
+fi
+
+currentWindowId () {
+  if hash osascript 2>/dev/null; then #osx
+    osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0"
+  elif (hash notify-send 2>/dev/null || hash kdialog 2>/dev/null); then #ubuntu!
+    xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0"
+  else
+    echo $EPOCHSECONDS #fallback for windows
+  fi
+}
+
+bgnotify () { ## args: (title, subtitle)
+  if hash terminal-notifier 2>/dev/null; then #osx
+    [[ "$TERM_PROGRAM" == 'iTerm.app' ]] && term_id='com.googlecode.iterm2';
+    [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] && term_id='com.apple.terminal';
+    ## now call terminal-notifier, (hopefully with $term_id!)
+    [ -z "$term_id" ] && terminal-notifier -message "$2" -title "$1" >/dev/null ||
+    terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null
+  elif hash growlnotify 2>/dev/null; then #osx growl
+    growlnotify -m "$1" "$2"
+  elif hash notify-send 2>/dev/null; then #ubuntu gnome!
+    notify-send "$1" "$2"
+  elif hash kdialog 2>/dev/null; then #ubuntu kde!
+    kdialog --title "$1" --passivepopup  "$2" 5
+  elif hash notifu 2>/dev/null; then #cygwyn support!
+    notifu /m "$2" /p "$1"
+  fi
+}
+
+
+## Zsh hooks ##
+
+bgnotify_begin() {
+  bgnotify_timestamp=$EPOCHSECONDS
+  bgnotify_lastcmd="$1"
+  bgnotify_windowid=$(currentWindowId)
+}
+
+bgnotify_end() {
+  didexit=$?
+  elapsed=$(( EPOCHSECONDS - bgnotify_timestamp ))
+  past_threshold=$(( elapsed >= bgnotify_threshold ))
+  if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then
+    if [ $(currentWindowId) != "$bgnotify_windowid" ]; then
+      print -n "\a"
+      bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed"
+    fi
+  fi
+  bgnotify_timestamp=0 #reset it to 0!
+}
+
+## only enable if a local (non-ssh) connection
+if [ -z "$SSH_CLIENT" ] && [ -z "$SSH_TTY" ]; then
+  add-zsh-hook preexec bgnotify_begin
+  add-zsh-hook precmd bgnotify_end
+fi

+ 6 - 0
plugins/boot2docker/README.md

@@ -0,0 +1,6 @@
+## Boot2docker autocomplete plugin
+
+- Adds autocomplete options for all boot2docker commands.
+
+
+Maintainer : Manfred Touron ([@moul](https://github.com/moul))

+ 73 - 0
plugins/boot2docker/_boot2docker

@@ -0,0 +1,73 @@
+#compdef boot2docker
+
+# Boot2docker autocompletion for oh-my-zsh
+# Requires: Boot2docker installed
+# Author: Manfred Touron (@moul)
+
+local -a _1st_arguments
+_1st_arguments=(
+   "init":"Create a new Boot2Docker VM."
+   "up":"Start VM from any states."
+   "start":"Start VM from any states."
+   "boot":"Start VM from any states."
+   "ssh":"[ssh-command] Login to VM via SSH."
+   "save":"Suspend VM and save state to disk."
+   "suspend":"Suspend VM and save state to disk."
+   "down":"Gracefully shutdown the VM."
+   "stop":"Gracefully shutdown the VM."
+   "halt":"Gracefully shutdown the VM."
+   "restart":"Gracefully reboot the VM."
+   "poweroff":"Forcefully power off the VM (may corrupt disk image)."
+   "reset":"Forcefully power cycle the VM (may corrupt disk image)."
+   "delete":"Delete Boot2Docker VM and its disk image."
+   "destroy":"Delete Boot2Docker VM and its disk image."
+   "config":"Show selected profile file settings."
+   "cfg":"Show selected profile file settings."
+   "info":"Display detailed information of VM."
+   "ip":"Display the IP address of the VM's Host-only network."
+   "socket":"Display the DOCKER_HOST socket to connect to."
+   "shellinit":"Display the shell command to set up the Docker client."
+   "status":"Display current state of VM."
+   "download":"Download Boot2Docker ISO image."
+   "upgrade":"Upgrade the Boot2Docker ISO image (restart if running)."
+   "version":"Display version information."
+)
+
+_arguments \
+  '(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \
+  '(--cpus)'{-c,--cpus}'[number of CPUs for boot2docker.]' \
+  '(--clobber)--clobber[overwrite Docker client binary on boot2docker upgrade]' \
+  '(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \
+  '(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \
+  '(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \
+  '(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \
+  '(--driver)--driver[hypervisor driver.]' \
+  '(--force-upgrade-download)--force-upgrade-download[always download on boot2docker upgrade, never skip.]' \
+  '(--hostip)--hostip[VirtualBox host-only network IP address.]' \
+  '(--iso)--iso[path to boot2docker ISO image.]' \
+  '(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \
+  '(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \
+  '(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \
+  '(--netmask)--netmask[VirtualBox host-only network mask.]' \
+  '(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \
+  '(--retries)--retries[number of port knocking retries during 'start']' \
+  '(--serial)--serial[try serial console to get IP address (experimental)]' \
+  '(--serialfile)--serialfile[path to the serial socket/pipe.]' \
+  '(--ssh)--ssh[path to SSH client utility.]' \
+  '(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \
+  '(--sshkey)--sshkey[path to SSH key to use.]' \
+  '(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \
+  '(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \
+  '(--vbm)--vbm[path to VirtualBox management utility.]' \
+  '(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \
+  '(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \
+  '(--vm)--vm[virtual machine name.]' \
+  '(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \
+  '*:: :->subcmds' && return 0
+
+#_arguments '*:: :->command'
+
+if (( CURRENT == 1 )); then
+    _describe -t commands "boot2docker command" _1st_arguments
+    return
+fi

+ 18 - 0
plugins/bower/README.md

@@ -0,0 +1,18 @@
+# Bower plugin
+
+This plugin adds completion for [Bower](https://bower.io/) and a few useful aliases for common Bower commands.
+
+To use it, add `bower` to the plugins array in your zshrc file:
+
+```
+plugins=(... bower)
+```
+
+## Aliases
+
+| Alias | Command         | Description                                            |
+|-------|-----------------|--------------------------------------------------------|
+| bi    | `bower install` | Installs the project dependencies listed in bower.json |
+| bl    | `bower list`    | List local packages and possible updates               |
+| bs    | `bower search`  | Finds all packages or a specific package.              |
+

+ 58 - 0
plugins/bower/_bower

@@ -0,0 +1,58 @@
+
+
+# Credits to npm's awesome completion utility.
+#
+# Bower completion script, based on npm completion script.
+
+###-begin-bower-completion-###
+#
+# Installation: bower completion >> ~/.bashrc  (or ~/.zshrc)
+# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower
+#
+
+COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
+COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
+export COMP_WORDBREAKS
+
+if type complete &>/dev/null; then
+  _bower_completion () {
+    local si="$IFS"
+    IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
+                           COMP_LINE="$COMP_LINE" \
+                           COMP_POINT="$COMP_POINT" \
+                           bower completion -- "${COMP_WORDS[@]}" \
+                           2>/dev/null)) || return $?
+    IFS="$si"
+  }
+  complete -F _bower_completion bower
+elif type compdef &>/dev/null; then
+  _bower_completion() {
+    si=$IFS
+    compadd -- $(COMP_CWORD=$((CURRENT-1)) \
+                 COMP_LINE=$BUFFER \
+                 COMP_POINT=0 \
+                 bower completion -- "${words[@]}" \
+                 2>/dev/null)
+    IFS=$si
+  }
+  compdef _bower_completion bower
+elif type compctl &>/dev/null; then
+  _bower_completion () {
+    local cword line point words si
+    read -Ac words
+    read -cn cword
+    let cword-=1
+    read -l line
+    read -ln point
+    si="$IFS"
+    IFS=$'\n' reply=($(COMP_CWORD="$cword" \
+                       COMP_LINE="$line" \
+                       COMP_POINT="$point" \
+                       bower completion -- "${words[@]}" \
+                       2>/dev/null)) || return $?
+    IFS="$si"
+  }
+  compctl -K _bower_completion bower
+fi
+###-end-bower-completion-###
+

+ 82 - 0
plugins/bower/bower.plugin.zsh

@@ -0,0 +1,82 @@
+alias bi="bower install"
+alias bl="bower list"
+alias bs="bower search"
+
+_bower_installed_packages () {
+    bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
+}
+_bower ()
+{
+    local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
+    local expl
+    typeset -A opt_args
+
+    _no_color=('--no-color[Do not print colors (available in all commands)]')
+
+    _dopts=(
+        '(--save)--save[Save installed packages into the project"s bower.json dependencies]'
+        '(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
+    )
+
+    _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
+
+    _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
+
+    _production=('(--production)--production[Do not install project devDependencies]')
+
+    _1st_arguments=(
+    'cache-clean:Clean the Bower cache, or the specified package caches' \
+    'help:Display help information about Bower' \
+    'info:Version info and description of a particular package' \
+    'init:Interactively create a bower.json file' \
+    'install:Install a package locally' \
+    'link:Symlink a package folder' \
+    'lookup:Look up a package URL by name' \
+    'register:Register a package' \
+    'search:Search for a package by name' \
+    'uninstall:Remove a package' \
+    'update:Update a package' \
+    {ls,list}:'[List all installed packages]'
+    )
+    _arguments \
+    $_no_color \
+    '*:: :->subcmds' && return 0
+
+    if (( CURRENT == 1 )); then
+        _describe -t commands "bower subcommand" _1st_arguments
+        return
+    fi
+
+    case "$words[1]" in
+        install)
+        _arguments \
+        $_dopts \
+        $_save_dev \
+        $_force_lastest \
+        $_no_color \
+        $_production
+        ;;
+        update)
+        _arguments \
+        $_dopts \
+        $_no_color \
+        $_force_lastest
+        _bower_installed_packages
+        compadd "$@" $(echo $bower_package_list)
+        ;;
+        uninstall)
+        _arguments \
+        $_no_color \
+        $_dopts
+        _bower_installed_packages
+        compadd "$@" $(echo $bower_package_list)
+        ;;
+        *)
+        _arguments \
+        $_no_color \
+        ;;
+    esac
+
+}
+
+compdef _bower bower

+ 33 - 0
plugins/branch/README.md

@@ -0,0 +1,33 @@
+# Branch
+
+Displays the current Git or Mercurial branch fast.
+
+## Speed test
+
+### Mercurial
+
+```shell
+$ time hg branch
+0.11s user 0.14s system 70% cpu 0.355 total
+```
+
+### Branch plugin
+
+```shell
+$ time zsh /tmp/branch_prompt_info_test.zsh
+0.00s user 0.01s system 78% cpu 0.014 total
+```
+
+## Usage
+
+Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`)
+adding `$(branch_prompt_info)` in your prompt like this:
+
+```diff
+- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
++ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
+```
+
+## Maintainer
+
+Victor Torres (<vpaivatorres@gmail.com>)

+ 31 - 0
plugins/branch/branch.plugin.zsh

@@ -0,0 +1,31 @@
+# Branch: displays the current Git or Mercurial branch fast.
+# Victor Torres <vpaivatorres@gmail.com>
+# Oct 2, 2015
+
+function branch_prompt_info() {
+  # Defines path as current directory
+  local current_dir=$PWD
+  # While current path is not root path
+  while [[ $current_dir != '/' ]]
+  do
+    # Git repository
+    if [[ -d "${current_dir}/.git" ]]
+    then
+      echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/}
+      return;
+    fi
+    # Mercurial repository
+    if [[ -d "${current_dir}/.hg" ]]
+    then
+      if [[ -f "$current_dir/.hg/branch" ]]
+      then
+        echo '☿' $(<"$current_dir/.hg/branch")
+      else
+        echo '☿ default'
+      fi
+      return;
+    fi
+    # Defines path as parent directory and keeps looking for :)
+    current_dir="${current_dir:h}"
+  done
+}

+ 19 - 0
plugins/brew/README.md

@@ -0,0 +1,19 @@
+# brew plugin
+
+The plugin adds several aliases for common [brew](https://brew.sh) commands.
+
+To use it, add `brew` to the plugins array of your zshrc file:
+```
+plugins=(... brew)
+```
+
+## Aliases
+
+| Alias  | Command              | Description   |
+|--------|----------------------|---------------|
+| brewp  | `brew pin`           | Pin a specified formulae, preventing them from being upgraded when issuing the brew upgrade <formulae> command. |
+| brews  | `brew list -1`       | List installed formulae, one entry per line, or the installed files for a given formulae. |
+| brewsp | `brew list --pinned` | Show the versions of pinned formulae, or only the specified (pinned) formulae if formulae are given. |
+| bubo   | `brew update && brew outdated` | Fetch the newest version of Homebrew and all formulae, then list outdated formulae. |
+| bubc   | `brew upgrade && brew cleanup` | Upgrade outdated, unpinned brews (with existing install options), then removes stale lock files and outdated downloads for formulae and casks, and removes old versions of installed formulae. |
+| bubu   | `bubo && bubc`       | Updates Homebrew, lists outdated formulae, upgrades oudated and unpinned formulae, and removes stale and outdated downloads and versions. |

+ 22 - 0
plugins/brew/brew.plugin.zsh

@@ -0,0 +1,22 @@
+alias brewp='brew pin'
+alias brews='brew list -1'
+alias brewsp='brew list --pinned'
+alias bubo='brew update && brew outdated'
+alias bubc='brew upgrade && brew cleanup'
+alias bubu='bubo && bubc'
+
+if command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then
+	print -P '%F{yellow}'Oh My Zsh brew plugin:
+	cat <<-'EOF'
+
+		  With the advent of their 1.0 release, Homebrew has decided to bundle
+		  the zsh completion as part of the brew installation, so we no longer
+		  ship it with the brew plugin; now it only has brew aliases.
+
+		  If you find that brew completion no longer works, make sure you have
+		  your Homebrew installation fully up to date.
+
+		  You will only see this message once.
+	EOF
+	print -P '%f'
+fi

+ 52 - 0
plugins/bundler/README.md

@@ -0,0 +1,52 @@
+# Bundler
+
+- adds completion for basic bundler commands
+- adds short aliases for common bundler commands
+  - `be` aliased to `bundle exec`.  
+    It also supports aliases (if `rs` is `rails server`, `be rs` will bundle-exec `rails server`).
+  - `bl` aliased to `bundle list`
+  - `bp` aliased to `bundle package`
+  - `bo` aliased to `bundle open`
+  - `bout` aliased to `bundle outdated`
+  - `bu` aliased to `bundle update`
+  - `bi` aliased to `bundle install --jobs=<cpu core count>` (only for bundler `>= 1.4.0`)
+- adds a wrapper for common gems:
+  - looks for a binstub under `./bin/` and executes it (if present)
+  - calls `bundle exec <gem executable>` otherwise
+
+Common gems wrapped by default (by name of the executable):
+`annotate`, `cap`, `capify`, `cucumber`, `foodcritic`, `guard`, `hanami`, `irb`, `jekyll`, `kitchen`, `knife`, `middleman`, `nanoc`, `pry`, `puma`, `rackup`, `rainbows`, `rake`, `rspec`, `shotgun`, `sidekiq`, `spec`, `spork`, `spring`, `strainer`, `tailor`, `taps`, `thin`, `thor`, `unicorn` and `unicorn_rails`.
+
+## Configuration
+
+Please use the exact name of the executable and not the gem name.
+
+### Add additional gems to be wrapped
+
+Add this before the plugin-list in your `.zshrc`:
+```sh
+BUNDLED_COMMANDS=(rubocop)
+plugins=(... bundler ...)
+```
+This will add the wrapper for the `rubocop` gem (i.e. the executable).
+
+
+### Exclude gems from being wrapped
+
+Add this before the plugin-list in your `.zshrc`:
+```sh
+UNBUNDLED_COMMANDS=(foreman spin)
+plugins=(... bundler ...)
+```
+This will exclude the `foreman` and `spin` gems (i.e. their executable) from being wrapped.
+
+## Excluded gems
+
+These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/robbyrussell/oh-my-zsh/pull/2923) on GitHub for clarification.
+
+`berks`
+`foreman`
+`mailcatcher`
+`rails`
+`ruby`
+`spin`

+ 104 - 0
plugins/bundler/_bundler

@@ -0,0 +1,104 @@
+#compdef bundle
+
+local curcontext="$curcontext" state line _gems _opts ret=1
+
+_arguments -C -A "-v" -A "--version" \
+	'(- 1 *)'{-v,--version}'[display version information]' \
+	'1: :->cmds' \
+	'*:: :->args' && ret=0
+
+case $state in
+	cmds)
+		_values "bundle command" \
+			"install[Install the gems specified by the Gemfile or Gemfile.lock]" \
+			"update[Update dependencies to their latest versions]" \
+			"package[Package the .gem files required by your application]" \
+			"exec[Execute a script in the context of the current bundle]" \
+			"config[Specify and read configuration options for bundler]" \
+			"check[Determine whether the requirements for your application are installed]" \
+			"list[Show all of the gems in the current bundle]" \
+			"show[Show the source location of a particular gem in the bundle]" \
+			"outdated[Show all of the outdated gems in the current bundle]" \
+			"console[Start an IRB session in the context of the current bundle]" \
+			"open[Open an installed gem in the editor]" \
+			"viz[Generate a visual representation of your dependencies]" \
+			"init[Generate a simple Gemfile, placed in the current directory]" \
+			"gem[Create a simple gem, suitable for development with bundler]" \
+			"platform[Displays platform compatibility information]" \
+			"clean[Cleans up unused gems in your bundler directory]" \
+			"help[Describe available tasks or one specific task]"
+		ret=0
+		;;
+	args)
+		case $line[1] in
+			help)
+				_values 'commands' \
+                    'install' \
+                    'update' \
+                    'package' \
+                    'exec' \
+                    'config' \
+                    'check' \
+                    'list' \
+                    'show' \
+                    'outdated' \
+                    'console' \
+                    'open' \
+                    'viz' \
+                    'init' \
+                    'gem' \
+                    'platform' \
+                    'help' && ret=0
+				;;
+			install)
+				_arguments \
+					'(--no-color)--no-color[disable colorization in output]' \
+					'(--local)--local[do not attempt to connect to rubygems.org]' \
+					'(--quiet)--quiet[only output warnings and errors]' \
+					'(--gemfile)--gemfile=-[use the specified gemfile instead of Gemfile]:gemfile' \
+					'(--system)--system[install to the system location]' \
+					'(--deployment)--deployment[install using defaults tuned for deployment environments]' \
+					'(--frozen)--frozen[do not allow the Gemfile.lock to be updated after this install]' \
+					'(--path)--path=-[specify a different path than the system default]:path:_files' \
+					'(--binstubs)--binstubs=-[generate bin stubs for bundled gems to ./bin]:directory:_files' \
+					'(--without)--without=-[exclude gems that are part of the specified named group]:groups'
+				ret=0
+				;;
+			exec)
+				_normal && ret=0
+				;;
+			clean)
+				_arguments \
+					'(--force)--force[forces clean even if --path is not set]' \
+					'(--dry-run)--dry-run[only print out changes, do not actually clean gems]' \
+					'(--no-color)--no-color[Disable colorization in output]' \
+					'(--verbose)--verbose[Enable verbose output mode]'
+				ret=0
+				;;
+			outdated)
+				_arguments \
+					'(--pre)--pre[Check for newer pre-release gems]' \
+					'(--source)--source[Check against a specific source]' \
+					'(--local)--local[Do not attempt to fetch gems remotely and use the gem cache instead]' \
+					'(--no-color)--no-color[Disable colorization in output]' \
+					'(--verbose)--verbose[Enable verbose output mode]'
+				ret=0
+				;;
+			(open|show)
+				_gems=( $(bundle show 2> /dev/null | sed -e '/^  \*/!d; s/^  \* \([^ ]*\) .*/\1/') )
+				if [[ $_gems != "" ]]; then
+					_values 'gems' $_gems && ret=0
+				fi
+				;;
+			*)
+				_opts=(  $(bundle help $line[1] | sed -e '/^  \[-/!d; s/^  \[\(-[^=]*\)=.*/\1/') )
+				_opts+=( $(bundle help $line[1] | sed -e '/^  -/!d; s/^  \(-.\), \[\(-[^=]*\)=.*/\1 \2/') )
+				if [[ $_opts != "" ]]; then
+					_values 'options' $_opts && ret=0
+				fi
+				;;
+		esac
+		;;
+esac
+
+return ret

+ 115 - 0
plugins/bundler/bundler.plugin.zsh

@@ -0,0 +1,115 @@
+alias be="bundle exec"
+alias bl="bundle list"
+alias bp="bundle package"
+alias bo="bundle open"
+alias bout="bundle outdated"
+alias bu="bundle update"
+alias bi="bundle_install"
+alias bcn="bundle clean"
+
+bundled_commands=(
+  annotate
+  cap
+  capify
+  cucumber
+  foodcritic
+  guard
+  hanami
+  irb
+  jekyll
+  kitchen
+  knife
+  middleman
+  nanoc
+  pry
+  puma
+  rackup
+  rainbows
+  rake
+  rspec
+  shotgun
+  sidekiq
+  spec
+  spork
+  spring
+  strainer
+  tailor
+  taps
+  thin
+  thor
+  unicorn
+  unicorn_rails
+)
+
+# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
+for cmd in $UNBUNDLED_COMMANDS; do
+  bundled_commands=(${bundled_commands#$cmd});
+done
+
+# Add $BUNDLED_COMMANDS to the bundled_commands list
+for cmd in $BUNDLED_COMMANDS; do
+  bundled_commands+=($cmd);
+done
+
+## Functions
+
+bundle_install() {
+  if ! _bundler-installed; then
+    echo "Bundler is not installed"
+  elif ! _within-bundled-project; then
+    echo "Can't 'bundle install' outside a bundled project"
+  else
+    local bundler_version=`bundle version | cut -d' ' -f3`
+    if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
+      if [[ "$OSTYPE" = (darwin|freebsd)* ]]
+      then
+        local cores_num="$(sysctl -n hw.ncpu)"
+      else
+        local cores_num="$(nproc)"
+      fi
+      bundle install --jobs=$cores_num $@
+    else
+      bundle install $@
+    fi
+  fi
+}
+
+_bundler-installed() {
+  which bundle > /dev/null 2>&1
+}
+
+_within-bundled-project() {
+  local check_dir="$PWD"
+  while [ "$check_dir" != "/" ]; do
+    [ -f "$check_dir/Gemfile" ] && return
+    check_dir="$(dirname $check_dir)"
+  done
+  false
+}
+
+_binstubbed() {
+  [ -f "./bin/${1}" ]
+}
+
+_run-with-bundler() {
+  if _bundler-installed && _within-bundled-project; then
+    if _binstubbed $1; then
+      ./bin/$@
+    else
+      bundle exec $@
+    fi
+  else
+    $@
+  fi
+}
+
+## Main program
+for cmd in $bundled_commands; do
+  eval "function unbundled_$cmd () { $cmd \$@ }"
+  eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
+  alias $cmd=bundled_$cmd
+
+  if which _$cmd > /dev/null 2>&1; then
+    compdef _$cmd bundled_$cmd=$cmd
+  fi
+done

+ 9 - 0
plugins/bwana/README.md

@@ -0,0 +1,9 @@
+# Bwana
+
+This plugin provides a function to open `man` pages directly with [Bwana](https://www.bruji.com/bwana/).
+
+To use it add bwana to the plugins array in your zshrc file.
+
+```bash
+plugins=(... bwana)
+```

+ 13 - 0
plugins/bwana/bwana.plugin.zsh

@@ -0,0 +1,13 @@
+#
+# Requires https://www.bruji.com/bwana/
+#
+if [[ -e /Applications/Bwana.app ]] ||
+    ( system_profiler -detailLevel mini SPApplicationsDataType | grep -q Bwana )
+then
+  function man() {
+    open "man:$1"
+  }
+else
+  echo "Bwana lets you read man files in Safari through a man: URI scheme" 
+  echo "To use it within Zsh, install it from https://www.bruji.com/bwana/"
+fi

+ 9 - 0
plugins/cabal/README.md

@@ -0,0 +1,9 @@
+# Cabal
+
+This plugin provides completion for [Cabal](https://www.haskell.org/cabal/), a build tool for Haskell. It
+also provides a function `cabal_sandbox_info` that prints whether the current working directory is in a sandbox.
+
+To use it, add cabal to the plugins array of your zshrc file:
+```
+plugins=(... cabal)
+```

+ 93 - 0
plugins/cabal/cabal.plugin.zsh

@@ -0,0 +1,93 @@
+function cabal_sandbox_info() {
+    cabal_files=(*.cabal(N))
+    if [ $#cabal_files -gt 0 ]; then
+        if [ -f cabal.sandbox.config ]; then
+            echo "%{$fg[green]%}sandboxed%{$reset_color%}"
+        else
+            echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
+        fi
+    fi
+}
+
+function _cabal_commands() {
+    local ret=1 state
+    _arguments ':subcommand:->subcommand' && ret=0
+
+    case $state in
+      subcommand)
+        subcommands=(
+          "bench:Run the benchmark, if any (configure with UserHooks)"
+          "build:Compile all targets or specific target."
+          "check:Check the package for common mistakes"
+          "clean:Clean up after a build"
+          "copy:Copy the files into the install locations"
+          "configure:Prepare to build the package"
+          "exec:Run a command with the cabal environment"
+          "fetch:Downloads packages for later installation"
+          "freeze:Freeze dependencies."
+          "get:Gets a package's source code"
+          "haddock:Generate Haddock HTML documentation"
+          "help:Help about commands"
+          "hscolour:Generate HsColour colourised code, in HTML format"
+          "info:Display detailed information about a particular package"
+          "init:Interactively create a .cabal file"
+          "install:Installs a list of packages"
+          "list:List packages matching a search string"
+          "register:Register this package with the compiler"
+          "repl:Open an interpreter session for the given target"
+          "report:Upload build reports to a remote server"
+          "run:Runs the compiled executable"
+          "sandbox:Create/modify/delete a sandbox"
+          "sdist:Generate a source distribution file (.tar.gz)"
+          "test:Run the test suite, if any (configure with UserHooks)"
+          "unpack:Unpacks packages for user inspection"
+          "update:Updates list of known packages"
+          "upload:Uploads source packages to Hackage"
+        )
+        _describe -t subcommands 'cabal subcommands' subcommands && ret=0
+    esac
+
+    return ret
+}
+
+compdef _cabal_commands cabal
+
+function _cab_commands() {
+    local ret=1 state
+    _arguments ':subcommand:->subcommand' && ret=0
+
+    case $state in
+      subcommand)
+        subcommands=(
+          "sync:Fetch the latest package index"
+          "install:Install packages"
+          "uninstall:Uninstall packages"
+          "installed:List installed packages"
+          "configure:Configure a cabal package"
+          "build:Build a cabal package"
+          "clean:Clean up a build directory"
+          "outdated:Display outdated packages"
+          "info:Display information of a package"
+          "sdist:Make tar.gz for source distribution"
+          "upload:Uploading tar.gz to HackageDB"
+          "get:Untar a package in the current directory"
+          "deps:Show dependencies of this package"
+          "revdeps:Show reverse dependencies of this package"
+          "check:Check consistency of packages"
+          "genpaths:Generate Paths_<pkg>.hs"
+          "search:Search available packages by package name"
+          "add:Add a source directory"
+          "test:Run tests"
+          "bench:Run benchmarks"
+          "doc:Generate manuals"
+          "ghci:Run GHCi (with a sandbox)"
+          "init:Initialize a sandbox"
+          "help:Display the help message of the command"
+        )
+        _describe -t subcommands 'cab subcommands' subcommands && ret=0
+    esac
+
+    return ret
+}
+
+command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab }

+ 33 - 0
plugins/cake/cake.plugin.zsh

@@ -0,0 +1,33 @@
+# Set this to 1 if you want to cache the tasks
+_cake_cache_task_list=1
+
+# Cache filename
+_cake_task_cache_file='.cake_task_cache'
+
+_cake_get_target_list () {
+	cake | grep '^cake ' | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'
+}
+
+_cake_does_target_list_need_generating () {
+
+	if [ ${_cake_cache_task_list} -eq 0 ]; then
+		return 1;
+	fi
+
+	[ ! -f ${_cake_task_cache_file} ] && return 0;
+	[ Cakefile -nt ${_cake_task_cache_file} ] && return 0;
+	return 1;
+}
+
+_cake () {
+	if [ -f Cakefile ]; then
+		if _cake_does_target_list_need_generating; then
+			_cake_get_target_list > ${_cake_task_cache_file}
+			compadd `cat ${_cake_task_cache_file}`
+		else
+			compadd `_cake_get_target_list`
+		fi
+	fi
+}
+
+compdef _cake cake

+ 38 - 0
plugins/cakephp3/cakephp3.plugin.zsh

@@ -0,0 +1,38 @@
+# CakePHP 3 basic command completion
+_cakephp3_get_command_list () {
+	bin/cake Completion commands
+}
+
+_cakephp3_get_sub_command_list () {
+	bin/cake Completion subcommands ${words[2]}
+}
+
+_cakephp3_get_3rd_argument () {
+	bin/cake ${words[2]} ${words[3]} | \grep '\-\ '| \awk '{print $2}'
+}
+
+_cakephp3 () {
+	local -a has3rdargument
+	has3rdargument=("all" "controller" "fixture" "model" "template")
+	if [ -f bin/cake ]; then
+		if (( CURRENT == 2 )); then
+			compadd $(_cakephp3_get_command_list)
+		fi
+		if (( CURRENT == 3 )); then
+			compadd $(_cakephp3_get_sub_command_list)
+		fi
+		if (( CURRENT == 4 )); then
+			if [[ ${has3rdargument[(i)${words[3]}]} -le ${#has3rdargument} ]]; then
+				compadd $(_cakephp3_get_3rd_argument)
+			fi
+		fi
+  fi
+}
+
+compdef _cakephp3 bin/cake
+compdef _cakephp3 cake
+
+#Alias
+alias c3='bin/cake'
+alias c3cache='bin/cake orm_cache clear'
+alias c3migrate='bin/cake migrations migrate'

+ 14 - 0
plugins/capistrano/README.md

@@ -0,0 +1,14 @@
+# Capistrano
+
+This plugin provides completion for [Capistrano](https://capistranorb.com/).
+
+To use it add capistrano to the plugins array in your zshrc file.
+
+```bash
+plugins=(... capistrano)
+```
+
+For a working completion use the `capit` command instead of `cap`, because cap is a
+[reserved word in zsh](http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module).
+
+`capit` automatically runs cap with bundler if a Gemfile is found.

+ 49 - 0
plugins/capistrano/_capistrano

@@ -0,0 +1,49 @@
+#compdef capit
+#autoload
+
+# Added `capit` because `cap` is a reserved word. `cap` completion doesn't work.
+# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module
+
+local curcontext="$curcontext" state line ret=1
+local -a _configs
+
+_arguments -C \
+  '1: :->cmds' \
+  '2:: :->args' && ret=0
+
+_cap_tasks() {
+  if [[ -f config/deploy.rb || -f Capfile ]]; then
+    if [[ ! -f .cap_tasks~ ]]; then
+      capit --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~
+    fi
+
+    OLD_IFS=$IFS
+    IFS=$'\n'
+    _values 'cap commands' $(< .cap_tasks~)
+    IFS=$OLD_IFS
+    # zmodload zsh/mapfile
+    # _values ${(f)mapfile[.cap_tasks~]}
+  fi
+}
+
+_cap_stages() {
+  compadd $(find config/deploy -name \*.rb | cut -d/ -f3 | sed s:.rb::g)
+}
+
+case $state in
+  cmds)
+    # check if it uses multistage
+    if [[ -d config/deploy ]]; then
+      _cap_stages
+    else
+      _cap_tasks
+    fi
+    ret=0
+    ;;
+  args)
+    _cap_tasks
+    ret=0
+    ;;
+esac
+
+return ret

+ 11 - 0
plugins/capistrano/capistrano.plugin.zsh

@@ -0,0 +1,11 @@
+# Added `capit` because `cap` is a reserved word. `cap` completion doesn't work.
+# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module
+
+function capit() {
+  if [ -f Gemfile ]
+  then
+    bundle exec cap $*
+  else
+    cap $*
+  fi
+}

+ 11 - 0
plugins/cargo/README.md

@@ -0,0 +1,11 @@
+# cargo
+
+This plugin adds completion for the Rust build tool [`cargo`](https://github.com/rust-lang/cargo).
+
+To use it, add `cargo` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... cargo)
+```
+
+Updated on October 4th, 2016.

+ 500 - 0
plugins/cargo/_cargo

@@ -0,0 +1,500 @@
+#compdef cargo
+
+typeset -A opt_args
+autoload -U regexp-replace
+
+_cargo() {
+
+_arguments \
+    '(- 1 *)'{-h,--help}'[show help message]' \
+    '(- 1 *)'{-V,--version}'[show version information]' \
+    '(- 1 *)'--list'[list installed commands]' \
+    '(- 1 *)'--explain'[Run `rustc --explain CODE`]' \
+    '(- 1 *)'{-v,--verbose}'[use verbose output]' \
+    '(- 1 *)'--color'[colorization option]' \
+    '(- 1 *)'--frozen'[Require Cargo.lock and cache are up to date]' \
+    '(- 1 *)'--locked'[Require Cargo.lock is up to date]' \
+    '1: :_cargo_cmds' \
+    '*:: :->args'
+
+case $state in
+    args)
+        case $words[1] in
+            bench)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    "${command_scope_spec[@]}" \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-default-features[do not build the default features]' \
+                    '--no-run[compile but do not run]' \
+                    '(-p,--package)'{-p=,--package=}'[package to run benchmarks for]:packages:_get_package_names' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            build)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    "${command_scope_spec[@]}" \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-default-features[do not build the default features]' \
+                    '(-p,--package)'{-p=,--package=}'[package to build]:packages:_get_package_names' \
+                    '--release=[build in release mode]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            clean)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-p,--package)'{-p=,--package=}'[package to clean]:packages:_get_package_names' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[whether or not to clean release artifacts]' \
+                    '--target=[target triple(default:all)]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            doc)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-deps[do not build docs for dependencies]' \
+                    '--no-default-features[do not build the default features]' \
+                    '--open[open docs in browser after the build]' \
+                    '(-p, --package)'{-p,--package}'=[package to document]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[build for the target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            fetch)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            generate-lockfile)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            git-checkout)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    'q(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--reference=[REF]' \
+                    '--url=[URL]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            help)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '*: :_cargo_cmds' \
+                    ;;
+
+            init)
+                _arguments \
+                    '--bin[use binary template]' \
+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--name=[set the resulting package name]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            install)
+                _arguments \
+                    '--bin=[only install the specified binary]' \
+                    '--branch=[branch to use when installing from git]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '--debug[build in debug mode instead of release mode]' \
+                    '--example[install the specified example instead of binaries]' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '--git=[URL from which to install the crate]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--no-default-features[do not build the default features]' \
+                    '--path=[local filesystem path to crate to install]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--rev=[specific commit to use when installing from git]' \
+                    '--root=[directory to install packages into]' \
+                    '--tag=[tag to use when installing from git]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--vers=[version to install from crates.io]' \
+                    ;;
+
+            locate-project)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    ;;
+
+            login)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[Host to set the token for]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            metadata)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "--no-deps[output information only about the root package and don't fetch dependencies]" \
+                    '--no-default-features[do not include the default feature]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '--format-version=[format version(default: 1)]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            new)
+                _arguments \
+                    '--bin[use binary template]' \
+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--name=[set the resulting package name]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            owner)
+                _arguments \
+                    '(-a, --add)'{-a,--add}'[add owner LOGIN]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--index[registry index]' \
+                    '(-l, --list)'{-l,--list}'[list owners of a crate]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-r, --remove)'{-r,--remove}'[remove owner LOGIN]' \
+                    '--token[API token to use when authenticating]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            package)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-l, --list)'{-l,--list}'[print files included in a package without making one]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-metadata[ignore warnings about a lack of human-usable metadata]' \
+                    '--no-verify[do not build to verify contents]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            pkgid)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            publish)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[Host to set the token for]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-verify[Do not verify tarball until before publish]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--token[token to use when uploading]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            read-manifest)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            run)
+                _arguments \
+                    '--example=[name of the bin target]' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--bin=[name of the bin target]' \
+                    '--no-default-features[do not build the default features]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release=[build in release mode]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '*: :_normal' \
+                    ;;
+
+            rustc)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '--features=[features to compile for the package]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to the manifest to fetch dependencies for]' \
+                    '--no-default-features[do not compile default features for the package]' \
+                    '(-p, --package)'{-p,--package}'=[profile to compile for]' \
+                    '--profile=[profile to build the selected target for]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[target triple which compiles will be for]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "${command_scope_spec[@]}" \
+                    ;;
+
+            rustdoc)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '--features=[space-separated list of features to also build]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to the manifest to document]' \
+                    '--no-default-features[do not build the `default` feature]' \
+                    '--open[open the docs in a browser after the operation]' \
+                    '(-p, --package)'{-p,--package}'=[package to document]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[build for the target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "${command_scope_spec[@]}" \
+                    ;;
+
+            search)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[host of a registry to search in]' \
+                    '--limit=[limit the number of results]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    ;;
+
+            test)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--test=[test name]: :_test_names' \
+                    '--no-default-features[do not build the default features]' \
+                    '--no-fail-fast[run all tests regardless of failure]' \
+                    '--no-run[compile but do not run]' \
+                    '(-p,--package)'{-p=,--package=}'[package to run tests for]:packages:_get_package_names' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '1: :_test_names' \
+                    ;;
+
+            uninstall)
+                _arguments \
+                    '--bin=[only uninstall the binary NAME]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-q, --quiet)'{-q,--quiet}'[less output printed to stdout]' \
+                    '--root=[directory to uninstall packages from]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    ;;
+
+            update)
+                _arguments \
+                    '--aggressive=[force dependency update]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-p,--package)'{-p=,--package=}'[package to update]:packages:__get_package_names' \
+                    '--precise=[update single dependency to PRECISE]: :' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            verify-project)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            version)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            yank)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--index[registry index]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--token[API token to use when authenticating]' \
+                    '--undo[undo a yank, putting a version back into the index]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '--vers[yank version]' \
+                    ;;
+        esac
+        ;;
+esac
+}
+
+_cargo_cmds(){
+local -a commands;commands=(
+'bench:execute all benchmarks of a local package'
+'build:compile the current project'
+'clean:remove generated artifacts'
+'doc:build package documentation'
+'fetch:fetch package dependencies'
+'generate-lockfile:create lockfile'
+'git-checkout:git checkout'
+'help:get help for commands'
+'init:create new project in current directory'
+'install:install a Rust binary'
+'locate-project:print "Cargo.toml" location'
+'login:login to remote server'
+'metadata:the metadata for a project in json'
+'new:create a new project'
+'owner:manage the owners of a crate on the registry'
+'package:assemble local package into a distributable tarball'
+'pkgid:print a fully qualified package specification'
+'publish:upload package to the registry'
+'read-manifest:print manifest in JSON format'
+'run:run the main binary of the local package'
+'rustc:compile a package and all of its dependencies'
+'rustdoc:build documentation for a package'
+'search:search packages on crates.io'
+'test:execute all unit and tests of a local package'
+'uninstall:remove a Rust binary'
+'update:update dependencies'
+'verify-project:check Cargo.toml'
+'version:show version information'
+'yank:remove pushed file from index'
+)
+_describe 'command' commands
+
+}
+
+
+#FIXME: Disabled until fixed
+#gets package names from the manifest file
+_get_package_names()
+{
+}
+
+#TODO:see if it makes sense to have 'locate-project' to have non-json output.
+#strips package name from json stuff
+_locate_manifest(){
+local manifest=`cargo locate-project 2>/dev/null`
+regexp-replace manifest '\{"root":"|"\}' ''
+echo $manifest
+}
+
+# Extracts the values of "name" from the array given in $1 and shows them as
+# command line options for completion
+_get_names_from_array()
+{
+    local -a filelist;
+    local manifest=$(_locate_manifest)
+    if [[ -z $manifest ]]; then
+        return 0
+    fi
+
+    local last_line
+    local -a names;
+    local in_block=false
+    local block_name=$1
+    names=()
+    while read line
+    do
+        if [[ $last_line == "[[$block_name]]" ]]; then
+            in_block=true
+        else
+            if [[ $last_line =~ '.*\[\[.*' ]]; then
+                in_block=false
+            fi
+        fi
+
+        if [[ $in_block == true ]]; then
+            if [[ $line =~ '.*name.*=' ]]; then
+                regexp-replace line '^.*name *= *|"' ""
+                names+=$line
+            fi
+        fi
+
+        last_line=$line
+    done < $manifest
+    _describe $block_name names
+
+}
+
+#Gets the test names from the manifest file
+_test_names()
+{
+    _get_names_from_array "test"
+}
+
+#Gets the bench names from the manifest file
+_benchmark_names()
+{
+    _get_names_from_array "bench"
+}
+
+# These flags are mutally exclusive specifiers for the scope of a command; as
+# they are used in multiple places without change, they are expanded into the
+# appropriate command's `_arguments` where appropriate.
+set command_scope_spec
+command_scope_spec=(
+    '(--bin --example --test --lib)--bench=[benchmark name]: :_benchmark_names'
+    '(--bench --bin --test --lib)--example=[example name]'
+    '(--bench --example --test --lib)--bin=[binary name]'
+    '(--bench --bin --example --test)--lib=[library name]'
+    '(--bench --bin --example --lib)--test=[test name]'
+)
+
+
+_cargo

+ 15 - 0
plugins/cask/README.md

@@ -0,0 +1,15 @@
+# Cask plugin
+
+[Cask](https://github.com/cask/cask) is a project management tool for Emacs that helps
+automate the package development cycle; development, dependencies, testing, building,
+packaging and more.
+
+This plugin loads `cask` completion from non-standard locations, such as if installed
+via Homebrew or others. To enable it, add `cask` to your plugins array:
+
+```zsh
+plugins=(... cask)
+```
+
+Make sure you have the `cask` directory in your `$PATH` before loading Oh My Zsh,
+otherwise you'll get a "command not found" error.

+ 26 - 0
plugins/cask/cask.plugin.zsh

@@ -0,0 +1,26 @@
+() {
+  emulate -L zsh
+
+  if ! (( $+commands[cask] )); then
+    print "zsh cask plugin: cask command not found" >&2
+    return
+  fi
+
+  cask_base=${commands[cask]:h:h}
+
+  # Plain cask installation location (for Cask 0.7.2 and earlier)
+  comp_files=($cask_base/etc/cask_completion.zsh)
+
+  # Mac Homebrew installs the completion in a different location
+  if (( $+commands[brew] )); then
+    comp_files+=($(brew --prefix)/share/zsh/site-functions/cask_completion.zsh)
+  fi
+
+  # Load first found file
+  for f in $comp_files; do
+    if [[ -f "$f" ]]; then
+      source "$f"
+      break
+    fi
+  done
+}

+ 35 - 0
plugins/catimg/README.md

@@ -0,0 +1,35 @@
+# catimg
+
+Plugin for displaying images on the terminal using the the `catimg.sh` script provided by [posva](https://github.com/posva/catimg)
+
+## Requirements
+
+- `convert` (ImageMagick)
+
+## Enabling the plugin
+
+1. Open your `.zshrc` file and add `catimg` in the plugins section:
+
+   ```zsh
+   plugins=(
+       # all your enabled plugins
+       catimg
+   )
+   ```
+
+2. Reload the source file or restart your Terminal session:
+
+   ```console
+   $ source ~/.zshrc
+   $
+   ```
+
+## Functions
+
+| Function | Description                              |
+| -------- | ---------------------------------------- |
+| `catimg` | Displays the given image on the terminal |
+
+## Usage examples
+
+[![asciicast](https://asciinema.org/a/204702.png)](https://asciinema.org/a/204702)

+ 17 - 0
plugins/catimg/catimg.plugin.zsh

@@ -0,0 +1,17 @@
+################################################################################
+# catimg script by Eduardo San Martin Morote aka Posva                         #
+# https://posva.net                                                            #
+#                                                                              #
+# Ouput the content of an image to the stdout using the 256 colors of the      #
+# terminal.                                                                    #
+# Github: https://github.com/posva/catimg                                      #
+################################################################################
+
+
+function catimg() {
+  if [[ -x  `which convert` ]]; then
+    zsh $ZSH/plugins/catimg/catimg.sh $@
+  else
+    echo "catimg need convert (ImageMagick) to work)"
+  fi
+}

+ 88 - 0
plugins/catimg/catimg.sh

@@ -0,0 +1,88 @@
+################################################################################
+# catimg script by Eduardo San Martin Morote aka Posva                         #
+# https://posva.net                                                            #
+#                                                                              #
+# Ouput the content of an image to the stdout using the 256 colors of the      #
+# terminal.                                                                    #
+# Github: https://github.com/posva/catimg                                      #
+################################################################################
+
+function help() {
+  echo "Usage catimg [-h] [-w width] [-c char] img"
+  echo "By default char is \"  \" and w is the terminal width"
+}
+
+# VARIABLES
+COLOR_FILE=$(dirname $0)/colors.png
+CHAR="  "
+
+WIDTH=""
+IMG=""
+
+while getopts qw:c:h opt; do
+  case "$opt" in
+    w) WIDTH="$OPTARG" ;;
+    c) CHAR="$OPTARG" ;;
+    h) help; exit ;;
+    *) help ; exit 1;;
+    esac
+  done
+
+while [ "$1" ]; do
+  IMG="$1"
+  shift
+done
+
+if [ "$IMG" = "" -o ! -f "$IMG" ]; then
+  help
+  exit 1
+fi
+
+if [ ! "$WIDTH" ]; then
+  COLS=$(expr $(tput cols) "/" $(echo -n "$CHAR" | wc -c))
+else
+  COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c))
+fi
+WIDTH=$(convert "$IMG" -print "%w\n" /dev/null)
+if [ "$WIDTH" -gt "$COLS" ]; then
+  WIDTH=$COLS
+fi
+
+REMAP=""
+if convert "$IMG" -resize $COLS\> +dither -remap $COLOR_FILE /dev/null ; then
+  REMAP="-remap $COLOR_FILE"
+else
+  echo "The version of convert is too old, don't expect good results :(" >&2
+  #convert "$IMG" -colors 256 PNG8:tmp.png
+  #IMG="tmp.png"
+fi
+
+# Display the image
+I=0
+convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- 2>/dev/null |
+sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' |
+while read R G B f; do
+  if [ ! "$R" = "NO" ]; then
+    if [ "$R" -eq "$G" -a "$G" -eq "$B" ]; then
+      ((
+      I++,
+      IDX = 232 + R * 23 / 255
+      ))
+    else
+      ((
+      I++,
+      IDX = 16
+      + R * 5 / 255 * 36
+      + G * 5 / 255 * 6
+      + B * 5 / 255
+      ))
+    fi
+    #echo "$R,$G,$B: $IDX"
+    echo -ne "\e[48;5;${IDX}m${CHAR}"
+  else
+    (( I++ ))
+    echo -ne "\e[0m${CHAR}"
+  fi
+  # New lines
+  (( $I % $WIDTH )) || echo -e "\e[0m"
+done

BIN
plugins/catimg/colors.png


+ 9 - 0
plugins/celery/README.md

@@ -0,0 +1,9 @@
+# Celery
+
+This plugin provides completion for [Celery](http://www.celeryproject.org/).
+
+To use it add celery to the plugins array in your zshrc file.
+
+```bash
+plugins=(... celery)
+```

+ 129 - 0
plugins/celery/_celery

@@ -0,0 +1,129 @@
+#compdef celery
+#autoload
+
+#celery zsh  completion
+
+_celery () {
+local -a _1st_arguments ifargs dopts controlargs
+
+typeset -A opt_args
+
+_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
+                'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
+ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
+dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
+controlargs=('--timeout' '--destination')
+_arguments \
+        '(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
+        '(-b --broker=)'{-b,--broker}'[url to broker.  default is "amqp://guest@localhost//":BROKER]' \
+        '(--loader)--loader[name of custom loader class to use.:LOADER]' \
+        '(--config)--config[Name of the configuration module:CONFIG]' \
+        '(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
+        '(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
+        '(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
+        '(--version)--version[show program"s version number and exit]' \
+        '(- : *)'{-h,--help}'[show this help message and exit]' \
+        '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+    _describe -t commands "celery subcommand" _1st_arguments
+    return
+fi
+
+case "$words[1]" in
+    worker)
+    _arguments \
+    '(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
+    '(--pool)--pool=:::(processes eventlet gevent threads solo)' \
+    '(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
+    '(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
+    '(--loglevel=)--loglevel=:::(critical error warning info debug)' \
+    '(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
+    '(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
+    '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
+    '(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
+    '(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
+    '(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
+    '(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
+    '(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
+    '(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
+    '(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
+    '(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
+    '(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
+    '(--autoreload)--autoreload[Enable autoreloading.]' \
+    '(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
+    compadd -a ifargs
+    ;;
+    inspect)
+    _values -s \
+    'active[dump active tasks (being processed)]' \
+    'active_queues[dump queues being consumed from]' \
+    'ping[ping worker(s)]' \
+    'registered[dump of registered tasks]' \
+    'report[get bugreport info]' \
+    'reserved[dump reserved tasks (waiting to be processed)]' \
+    'revoked[dump of revoked task ids]' \
+    'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
+    'stats[dump worker statistics]'
+    compadd -a controlargs ifargs
+    ;;
+    control)
+    _values -s \
+    'add_consumer[tell worker(s) to start consuming a queue]' \
+    'autoscale[change autoscale settings]' \
+    'cancel_consumer[tell worker(s) to stop consuming a queue]' \
+    'disable_events[tell worker(s) to disable events]' \
+    'enable_events[tell worker(s) to enable events]' \
+    'pool_grow[start more pool processes]' \
+    'pool_shrink[use less pool processes]' \
+    'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
+    'time_limit[tell worker(s) to modify the time limit for a task type.]'
+    compadd -a controlargs ifargs
+    ;;
+    multi)
+    _values -s \
+    '--nosplash[Don"t display program info.]' \
+    '--verbose[Show more output.]' \
+    '--no-color[Don"t display colors.]' \
+    '--quiet[Don"t show as much output.]' \
+    'start' 'restart' 'stopwait' 'stop' 'show' \
+    'names' 'expand' 'get' 'kill'
+    compadd -a ifargs
+    ;;
+    amqp)
+    _values -s \
+    'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
+    'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
+    ;;
+    list)
+    _values -s, 'bindings'
+    ;;
+    shell)
+    _values -s \
+    '--ipython[force iPython.]' \
+    '--bpython[force bpython.]' \
+    '--python[force default Python shell.]' \
+    '--without-tasks[don"t add tasks to locals.]' \
+    '--eventlet[use eventlet.]' \
+    '--gevent[use gevent.]'
+    compadd -a ifargs
+    ;;
+    beat)
+    _arguments \
+    '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
+    '(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
+    '(--max-interval)--max-interval[]'
+    compadd -a dopts fargs
+    ;;
+    events)
+    _arguments \
+    '(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
+    '(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
+    '(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency.  Default is every 1.0 seconds.]' \
+    '(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
+    compadd -a dopts fargs
+    ;;
+    *)
+        ;;
+    esac
+}

+ 121 - 0
plugins/chruby/chruby.plugin.zsh

@@ -0,0 +1,121 @@
+#
+# INSTRUCTIONS
+#
+#  With either a manual or brew installed chruby things should just work.
+#
+#  If you'd prefer to specify an explicit path to load chruby from
+#  you can set variables like so:
+#
+#    zstyle :omz:plugins:chruby path /local/path/to/chruby.sh
+#    zstyle :omz:plugins:chruby auto /local/path/to/auto.sh
+# 
+# TODO
+#  - autodetermine correct source path on non OS X systems
+#  - completion if ruby-install exists
+
+# rvm and rbenv plugins also provide this alias
+alias rubies='chruby'
+
+
+_homebrew-installed() {
+    whence brew &> /dev/null
+    _xit=$?
+    if [ $_xit -eq 0 ];then
+    	# ok , we have brew installed
+	# speculatively we check default brew prefix
+        if [ -h  /usr/local/opt/chruby ];then
+		_brew_prefix="/usr/local/opt/chruby"
+	else
+		# ok , it is not default prefix 
+		# this call to brew is expensive ( about 400 ms ), so at least let's make it only once
+		_brew_prefix=$(brew --prefix chruby)
+	fi
+	return 0
+   else
+        return $_xit
+   fi
+}
+
+_chruby-from-homebrew-installed() {
+  [ -r _brew_prefix ] &> /dev/null
+}
+
+_ruby-build_installed() {
+    whence ruby-build &> /dev/null
+}
+
+_ruby-install-installed() {
+    whence ruby-install &> /dev/null
+}
+
+# Simple definition completer for ruby-build
+if _ruby-build_installed; then
+    _ruby-build() { compadd $(ruby-build --definitions) }
+    compdef _ruby-build ruby-build
+fi
+
+_source_from_omz_settings() {
+    local _chruby_path
+    local _chruby_auto
+    
+    zstyle -s :omz:plugins:chruby path _chruby_path
+    zstyle -s :omz:plugins:chruby auto _chruby_auto
+
+    if [[ -r ${_chruby_path} ]]; then
+        source ${_chruby_path}
+    fi
+
+    if [[ -r ${_chruby_auto} ]]; then
+        source ${_chruby_auto}
+    fi
+}
+
+_chruby_dirs() {
+    chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies)
+    for dir in chrubydirs; do
+        if [[ -d $dir ]]; then
+            RUBIES+=$dir
+        fi
+    done
+}
+
+if _homebrew-installed && _chruby-from-homebrew-installed ; then
+    source $_brew_prefix/share/chruby/chruby.sh
+    source $_brew_prefix/share/chruby/auto.sh
+    _chruby_dirs
+elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then
+    source /usr/local/share/chruby/chruby.sh
+    source /usr/local/share/chruby/auto.sh
+    _chruby_dirs
+else
+    _source_from_omz_settings
+    _chruby_dirs
+fi
+
+function ensure_chruby() {
+    $(whence chruby)
+}
+
+function current_ruby() {
+    local _ruby
+    _ruby="$(chruby |grep \* |tr -d '* ')"
+    if [[ $(chruby |grep -c \*) -eq 1 ]]; then
+        echo ${_ruby}
+    else
+        echo "system"
+    fi
+}
+
+function chruby_prompt_info() {
+    echo "$(current_ruby)"
+}
+
+# complete on installed rubies
+_chruby() {
+    compadd $(chruby | tr -d '* ')
+    local default_path='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'
+    if PATH=${default_path} type ruby &> /dev/null; then
+        compadd system
+    fi
+}
+compdef _chruby chruby

+ 1 - 0
plugins/chucknorris/.gitignore

@@ -0,0 +1 @@
+fortunes/chucknorris.dat

+ 20 - 0
plugins/chucknorris/README.md

@@ -0,0 +1,20 @@
+# chucknorris
+
+Chuck Norris fortunes plugin for oh-my-zsh
+
+**Maintainers**: [apjanke](https://github.com/apjanke) [maff](https://github.com/maff)
+
+To use it add `chucknorris` to the plugins array in you zshrc file.
+
+```zsh
+plugins=(... chucknorris)
+```
+
+
+Depends on fortune (and cowsay if using chuck_cow) being installed (available via homebrew, apt, ...). Perfectly suitable as MOTD.
+
+
+| Command     | Description                     |
+| ----------- | ------------------------------- |
+| `chuck`     | Print random Chuck Norris quote |
+| `chuck_cow` | Print quote in cowthink         |

+ 28 - 0
plugins/chucknorris/chucknorris.plugin.zsh

@@ -0,0 +1,28 @@
+# chucknorris: Chuck Norris fortunes
+
+# Automatically generate or update Chuck's compiled fortune data file
+# $0 must be used outside a local function. This variable name is unlikly to collide.
+CHUCKNORRIS_PLUGIN_DIR=${0:h}
+
+() {
+local DIR=$CHUCKNORRIS_PLUGIN_DIR/fortunes
+if [[ ! -f $DIR/chucknorris.dat ]] || [[ $DIR/chucknorris.dat -ot $DIR/chucknorris ]]; then
+  # For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default
+  local strfile=strfile
+  if ! which strfile &>/dev/null && [[ -f /usr/sbin/strfile ]]; then
+    strfile=/usr/sbin/strfile
+  fi
+  if which $strfile &> /dev/null; then
+    $strfile $DIR/chucknorris $DIR/chucknorris.dat >/dev/null
+  else
+    echo "[oh-my-zsh] chucknorris depends on strfile, which is not installed" >&2
+    echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2
+  fi
+fi
+
+# Aliases
+alias chuck="fortune -a $DIR"
+alias chuck_cow="chuck | cowthink"
+}
+
+unset CHUCKNORRIS_PLUGIN_DIR

+ 2544 - 0
plugins/chucknorris/fortunes/chucknorris

@@ -0,0 +1,2544 @@
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+In fine print on the last page of the Guinness Book of World Records it notes that all world records are held by Chuck Norris, and those listed in the book are simply the closest anyone else has ever gotten.
+%
+There is no chin behind Chuck Norris' beard. There is only another fist.
+%
+Chuck Norris does not teabag the ladies. He potato-sacks them.
+%
+Pluto is actually an orbiting group of British soldiers from the American Revolution who entered space after the Chuck gave them a roundhouse kick to the face.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris can win in a top spinning tournament with a cube
+%
+Beware of dogs... Dogs, beware of Chuck Norris.
+%
+Chuck Norris can dig a hole in air.
+%
+The apple falls far from the tree, when a roundhouse kick is taken to the trunk.
+%
+Chuck Norris - the new standard.
+%
+Chuck Norris told me to put this here.
+%
+Chuck Norris doesn't exhale. The air runs desperately scared out of his lungs.
+%
+Fear of spiders is aracnaphobia, fear of tight spaces is chlaustraphobia, fear of Chuck Norris is called Logic
+%
+When Chuck Norris goes to rodeos, bulls ride him.
+%
+Chuck Norris once walked down a street with his fists in his pockets. He was then arrested for concealing two deadly weapons.
+%
+The meaning of life is Chuck Norris
+%
+Chuck Norris is the meaning of life. Too bad he's also the meaning of death.
+%
+If God doesn't know, Chuck does
+%
+Chuck Norris doesn't bowl strikes, he just knocks down one pin and the other nine faint.
+%
+The show Survivor had the original premise of putting people on an island with Chuck Norris. There were no survivors, and nobody is brave enough to go to the island to retrieve the footage.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+When God said "Let there be light!", Chuck Norris said "Only for half the day
+%
+Chuck Norris went up the creek without a paddle... or a canoe
+%
+Chuck Norris once asked a man to turn down his music, he refused, that man's baby was born deaf.
+%
+Chuck Norris found the hay in the needle stack.
+%
+Chuck Norris doesn't need to brush his teeth, his spit acts as a bleach.
+%
+Chuck Norris once had a street named after him. But the name removed at once, because nobody crosses Chuck Norris, and lives
+%
+The planes in 9/11 were not hijacked. Chuck Norris was just playing with his old radio controller.
+%
+Machiavelli said it is better to be feared than loved because he was inspired by Chuck Norris.
+%
+Chuck Norris Can Play the Theme from the Twilight Zone with His Beard
+%
+Chuck Norris pees Adamantium
+%
+The Beatles are on iTunes because Chuck Norris bought a Mac.
+%
+Chuck Norris once rounhouse kicked a football ...... it is now considered as a planet
+%
+Chuck Norris yells at Drill Sergeants
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+If at first you don't succeed, you're not Chuck Norris.
+%
+If Chuck Norris were a calendar, every month would be named Chucktober, and every day he'd kick your ass.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+Since 1940, the year Chuck Norris was born, roundhouse-kick related deaths have increased 13,000 percent.?
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+There is no such thing as being hard its called the Chuck Norris factor.
+%
+When Chuck Norris goes to the library, he looks for the guinness book of records in the comedy section.
+%
+Chuck Norris can shoot a person 28 times with an unloaded gun.
+%
+Chuck Norris' personal airplane is called Air Force Chuck
+%
+The letters in Chuck Norris cannot be unscrambled.
+%
+Cops don't need a badges in their wallets but only a picture of Chuck Norris.
+%
+Chuck Norris was the reason why the Great Wall of China was constructed. It failed miserably.
+%
+If you see a man in the street who looks like Chuck Norris, but isn't, run: you don't want to be caught in the resulting roundhouse kick to his face.
+%
+The red phone in the oval office...Rings directly to Chuck Norris Cell Phone
+%
+The only way sharks will come near CN underwater is when CN is inside of a cage.
+%
+Chuck Norris uses a real mouse to move the cursor, type on the keyboard, write e-mails, code entire websites, use photoshop, bring coffee.
+%
+If Chuck Norris were to get into a fight with another Chuck Norris, Chuck Norris would win.
+%
+"2012" is code for, Chuck Norris when he is pissed.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+In the back of the book of world records, it says "All records are held by Chuck Norris. The ones listed are in second place."
+%
+The only place where the Starship Enterprise refuses to boldly go is Chuck Norris' planet...which is all of them.
+%
+Chuck Norris once had a pet monkey........his name was KING KONG
+%
+Chuck Norris can make his own megazord "The Chuck Norris Roundhouse Kickers Ultimate Super Awesome Megazord"
+%
+Simon doesn't say...Chuck Norris says.
+%
+When does Chuck Norris run out of shotgun bullets?.....whenever he wants to.
+%
+The only sure things are Death and Taxes, and when Chuck Norris goes to work for the IRS, they'll be the same thing.
+%
+Chuck Norris' first job was as a paperboy. There were no survivors.
+%
+Chuck Norris can turn toast back into bread
+%
+Chuck Norris started Chuck Norris.
+%
+Ever wonder what really happened to the dinosaurs? They all dug their own graves when they heard Chuck Norris was coming
+%
+Chuck Norris killed Kemper
+%
+Did you here about the boy who cried Chuck Norris?
+%
+Chuck Norris can't perform Hadoukens, he IS a Hadouken
+%
+Behind every successful man is Chuck Norris
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+MacGyver immediately tried to make a bomb out of some Q-Tips and Gatorade, but Chuck Norris roundhouse-kicked him in the solar plexus. MacGyver promptly threw up his own heart.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+The square root of Chuck Norris is pain.  Do not try to square Chuck Norris.  The result is death
+%
+Chuck Norris doesn't read. He just stares at the book until he gets the information he wants.
+%
+Why didn't the chicken cross the road? Because Chuck Norris got to it first.
+%
+When taking the SAT, write "Chuck Norris" for every answer. You will score over 8000.
+%
+Chuck Norris can milk an alligator
+%
+Chuck Norris doesn't eat, he just sucks the energy out of food by staring at it
+%
+Chuck Norris once proved p^~p by induction on his beard hairs.
+%
+The reason why batman only comes out at night is because he's afraid he might encounter Chuck Norris in the Morning and afternoon.
+%
+Chuck Norris can bake in a Freezer.
+%
+Chuck Norris is currently suing any broadway theater that plays "The Nutcracker". He claims its an infringement on his "other" roundhouse kick.
+%
+Chuck Norris once had a weak moment, just to know what it felt like.
+%
+Note to everyone: Please do not give beans to Chuck Norris or do you want another atombomb on hiroshima?
+%
+Chuck Norris has made a 148 break a snooker.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+http://chucknorrisfacts.com/ is built in Drupal because Chuck Norris knows a good CMS when he sees one.
+%
+The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequal "The Last Skull Bender".
+%
+Some boots were made for walking. Some boots may walk all over you, but Chuck Norris' boot walk THROUGH you.
+%
+World War II began because Chuck Norris took a nap.  When he woke up, Hitler found out and killed himself out of fear Chuck Norris would kill him.
+%
+The best part of waking up is not Folgers in your cup, it's knowing that Chuck Norris let you live.
+%
+Only Chuck Norris can win the mind game, 'cause he never minds.
+%
+Do you know why Chuck Norris didn't star in The Expandebles? Because all the others guys would have surrended at the beginning.
+%
+Bruce Lee didn't defeat Chuck Norris.  Chuck hit Bruce with a Delayed roundhouse kick that was so fast that Lee only felt the impact a year later!
+%
+Chuck Norris doesn't need a bulletproof vest to be bulletproof
+%
+When Chuck Norris goes to Vegas, he doesn't have to gamble. The casinos just give him stacks of money.
+%
+Merlin was Chuck Norris' assistant.
+%
+If you put in the correct cheat code in Halo 2, you can have Master Cheif play without his helmet; revealing to be Chuck Norris.
+%
+Those who ignore history, are doomed by Chuck Norris.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Some kids pee their name in snow. Chuck Norris pees his name in concrete.
+%
+The Matrix Trilogy would have ended on the first movie if Keanu Reeves said, “I know Chuck Norris.”
+%
+Chuck Norris created Heavy Metal when he was upset
+%
+Some people ask for a Kleenex when they sneeze, Chuck Norris asks for a body bag.
+%
+When things go bump in the night.... it's Chuck Norris
+%
+Chuck Norris fed the Hunger Games
+%
+Chuck Norris played "Got your Nose" with Voldemort and won.
+%
+Chuck Norris had a knife thrown at him............          the knife didn't impale him, he impaled the knife
+%
+Chuck Norris doesn't let it go.
+%
+You know Chuck Norris' pet lizard, right? Last I heard, he was in the movie "Godzilla". Oh, and his pet turtle starred in "Gamera" as well.
+%
+Whatever Chuck Norris wants, it will instantly appear.
+%
+Chuck Norris once cut a knife with a stick of butter.
+%
+Chuck Norris shops at Sam's Club, but leaves without having his receipt checked
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+In 1945 The US army asked if they could clone Chuck Norris. instead he said he could sort out the Japanese.
+%
+One glance from Chuck Norris and snow turns itself yellow.
+%
+Chuck Norris checks under his bed for Fedor Emelianenko because he takes Fedor to the vet regularly.
+%
+Chuck Norris was the image used for Papa Smurf.
+%
+Chuck Norris is so scary he makes Sharks swim backwards away from him
+%
+When Chuck Norris tosses a coin, it lands on both head and tail.
+%
+Chuck Norris found the last digit of pie
+%
+Chuck Norris Watches "the Nat.Geo. Specials" on Discovery Channel
+%
+James Bond has a license to kill. He got it from Chuck Norris.
+%
+Chuck Norris is Chuck Norris
+%
+"The Big Chuck Norris Roundhouse-Kick Theory"
+%
+That's not an eclipse....that's the sun hiding from Chuck Norris.
+%
+Chuck Norris doesn't like Mudkipz
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris doesn’t eat salad, he eats vegetarians
+%
+Every time there's an earthquake, you know Chuck Norris is hungry. The earthquake is caused by his stomach growling.
+%
+Chuck Norris wasn't born on his birthday
+%
+One time a test cheated on Chuck Norris.
+%
+Chuck Norris won a stepdance contest by standing on his hands
+%
+Chuck Norris thretened to kill Michael Jackson, MJ got so scared to turned white.
+%
+When Steven Seagal kills a ninja, he only takes its hide. When Chuck Norris kills a ninja, he uses every part.
+%
+Chuck Norris is the life of parties he dosen't attend
+%
+Chuck Norris can rub two fires together and make a stick!
+%
+Contrary to popular beleif, Rome WAS built in a day, by Chuck Norris.
+%
+Chuck Norris rolled a 20 on a 6 sided die.
+%
+When chuck Norris was in school, he made his PE teacher run laps.
+%
+Chuck Norris wins NASCAR races with all right turns.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris is waiting for Mt. St. Helens to erupt again. He's hoping the lava is hot enough to soften his beard so he can shave for the first time.
+%
+Chuck Norris is overra...
+%
+Chuck Norris was originally in Mortal Kombat, but that version was deleted because no one can beat Chuck Norris in a fight.
+%
+Chuck Norris likes everyone on the earth, cause everyone he didn't like... Is dead...
+%
+Chunk Norris can make sour milk turn fresh
+%
+There is no limbo, only a world that doesn't know of Chuck Norris
+%
+Chuck Norris CAN believe it's not butter
+%
+Dog the Bounty Hunter can't track Chuck Norris down.
+%
+Abraham Lincoln didn't die because he was shot, Chuck Norris roundhouse-kicked so fast his foot went back in time and killed Abraham Lincoln.
+%
+When Chuck Norris inhales helium, his voice doesn't change.
+%
+When Chuck Norris drinks water, the water automatically pasteurized.
+%
+Chuck Norris once punched the ground to stop an earthquake. The resulting aftershock caused the BP oil spill
+%
+Chuck Norris can play the death waltz with his chin.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+More of a question than a fact: in a fight between Chuck Norris and Gordan Freeman who would win?
+%
+Chuck Norris once round-house kicked a salesman. Over the phone.
+%
+Chuck Norris can grill a popsicle
+%
+Chuck Norris' films are factual documentaries.
+%
+Casinos pay Chuck Norris not to play at anything or wish anyone good luck.
+%
+Chuck Norris once got a 200 yard punt return
+%
+Every line in a Chuck Norris haiku is "A roundhouse kick to the face."  And they all have the correct number of syllables.
+%
+An angry glare from Chuck Norris is known to kill on the spot.
+%
+Evolution's driving mechanism is nature's desperate attempt to escape Chuck Norris.
+%
+When President Roosevelt dropped the atomic bomb on Hiroshima, he did so only because it was more human then sending Chuck Norris.
+%
+Don't get Chuck Norris angry, last time somebody did that Chuck Norris made the Grand Canyon.
+%
+In Texas, there are five sizes for fountain drinks: small, medium, large, Texas sized, and Chuck Norris Sized.  It is a cup made of a human skull.
+%
+After Chuck counted to infinity the first time, he vowed to count to infinity a second time....by counting the bodies of those previously roundhoused.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Taking Karate Lessons = $100, Buying MMA DVD's= $150, Subscribing to a UFC event = $50, Getting a Roundhouse Kick from Chuck Norris = PRICELESS
+%
+Chuck Norris played the game of thrones and won
+%
+Chuck Norris doesn't need sunglasses, the sun needs Chuck Norris glasses
+%
+Chuck Norris doesn't call the wrong number, you just answer the wrong phone.
+%
+Chuck Norris once won the tour de france riding a " big wheel"
+%
+May the Force be with Chuck Norris... for it's own good.
+%
+Chuck Norris once played Duck Duck Goose with a group of Kindergarteners. Only one kid made it to first grade
+%
+During the Civil War Chuck Norris was a slave, his master would often beg him for mercy
+%
+Chuck Norris' glass is never half full or half empty. It stays full even after he takes a drink.
+%
+ King Kong climbed the Empire State building in fear of Chuck Norris who was downstairs at the time.
+%
+Chuck Norris can French kiss his elbow.
+%
+Chuck Norris never trains, because he's Chuck Norris.
+%
+Every phobia known to man has a phobia of Chuck Norris
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Once upon a time, Chuck Norris found himself in a town called Shit Creek.....He opened a Paddle Store.
+%
+Chuck Norris Can Power Solar Panels. At Night.
+%
+When Betty White gets angry, she turns into the Hulk. When Valerie Bertinelli gets mad, she turns into Chuck Norris.
+%
+Chuck Norris is so hard, he uses diamonds as stress balls.
+%
+Chuck Norris can roundhouse kick someone through a window without breaking the glass
+%
+Chuck Norris. Enough said.
+%
+The letters in Chuck Norris cannot be unscrambled.
+%
+Chuck Norris once taught a class of martial arts.Unfortunately Chuck had forgiven to take elephant tranquilizers and killed every one just by saluting
+%
+Chuck Norris was heard in a soundproof room!
+%
+Chuck Norris can see in 3D with just one eye.
+%
+Chuck Norris owns all number 1 pencils.
+%
+Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindess, and possibly foot sized brusies on the face.
+%
+Chuck Norris doesn’t brew up tea. He sucks the bag.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+They say death by a 1000 lashes was the most painful way to die, that was before they got roundhouse kicked in the face by Chuck Norris
+%
+Chuck Norris made a statue bleed.
+%
+Dead bodies were found of people that are still alive. These people will cross Chuck Norris in the future and will be round-house kicked back in time.
+%
+The reason why batman only comes out at night is because he's afraid he might encounter Chuck Norris in the Morning and afternoon.
+%
+The kids said when Chuck was eating Trix cereal ´´silly Chuck, Trix are for kids´´...what happened next?..............................Darfur happened.
+%
+Chuck Norris can roundhouse-kick round houses into squares.
+%
+Chuck Norris is allowed two carry-ons.
+%
+Chuck Norris can divide by zero.
+%
+Chuck Norris does not have a cell phone because he hears everything
+%
+Chuck Norris isn't appropriate...appropriate isn't Chuck Norris
+%
+Earth's rotation is purely governed by the direction that Chuck Norris is walking.
+%
+Chuck Norris drowned a man ON LAND.
+%
+The Jone's are trying to keep up with Chuck Norris
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris bowled a 301 after constructing another pin out of his beard hair
+%
+The only reason that USA lost the 2011 world cup to Japan is because Chuck Norris wasn't there.
+%
+Unlike Jack Bauer, Chuck Norris doesn't need bullets. A quick roundhouse to the face kills twice as fast.
+%
+There is no such thing as global warming. Chuck Norris was cold, so he turned the sun up.
+%
+Chuck Norris' dog pick up after him.
+%
+Jedis are now taught to use the "Chuck"
+%
+Chuck Norris dosent carry a list. He always knows what to do.
+%
+When Chuck Norris performs a roundhouse kick, he's actually measuring the circumference of the universe.
+%
+Walker: Texas Ranger went into syndication before the first episode was shot.
+%
+Chuck Norris doesn't throw up if he drinks too much. Chuck Norris throws down!
+%
+"Walker Texas Ranger: The Movie 3-D" was considered by Warner Brothers; however the technology to create the visual effects will never be possible.
+%
+When Chuck Norris creates a login, it tells him "password not strong enough", he types in his name and it tells him "password too strong."
+%
+Chuck Norris isn't allowed at the zoo because when he's there the animals are terriefied to come out their cages
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Aliens fear that Chuck Norris might abduct them.
+%
+Chuck Norris splattered tiger blood and Adonis' dna on Charlie Sheen with 1 roundhouse kick!
+%
+How much wood could a woodchuck chuck if a woodchuck could chuck wood?  No woodchuck could chuck Chuck's wood!
+%
+The sun only rises every morning because Chuck Norris allows it to.
+%
+Chuck Norris can do a regime change with a roundhouse kick.
+%
+Chuck Norris CAN spell with an I before E even after C.
+%
+Ghosts can see Chuck Norris
+%
+The answer to life, the universe and everything isnt 42. It's Chuck Norris.
+%
+When Chuck Norris pokes the Pillsbury Doughboy, it's not a laughing matter.
+%
+Chuck Norris once thought he was wrong. He was, however, mistaken.
+%
+Ever wonder what really happened to the dinosaurs? They all dug their own graves when they heard Chuck Norris was coming
+%
+"The wind cries Chuck Norris"
+%
+Chuck Norris doesn't need a bulletproof vest. He catches them with his bare hands.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris: even Naruto can't believe it
+%
+Chuck Norris can fit 10 gallons of water in a 5 gallon water bucket
+%
+Chuck Norris roundhouse kicks people in the face first and asks questions later.
+%
+Chuck Norris is the only one who can tear a facebook page!
+%
+Chuck Norris doesn't need air, he is air
+%
+Chuck Norris once tried to teach a fat, stupid kid Martial Arts. Unsuccessfully. The kid grew up to be Steven Seagal.
+%
+Achievement Unlocked: Chuck Norris of Death
+%
+Chuck Norris is the ghost in paranormal activity.
+%
+Chuck Norris can't get fired by Donald Trump
+%
+Ozzy Osbourne once accidentally bit the head off a live bat - Chuck Norris once deliberately bit the head off a live pterodactyl.
+%
+Note to self:  Don’t be the cashier to tell Chuck Norris his coupons have expired.
+%
+Chuck Norris was what Willis was talking about.
+%
+Chuck Norris is entitiled to his own facts.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+While visiting the hexagon, Chuck Norris was asked to demonstrate his famous roundhouse kick. Henceforth, it has been known as the Pentagon.
+%
+When Chuck Norris played the card game War with a friend, France surrendered.
+%
+If Goliath listened to Chuck Norris he would have won.
+%
+Chuck Norris can defuse bomb even if he cut the wrong wire
+%
+Chuck Norris sleeps in Seattle.
+%
+Chuck Norris shot a man with a knife
+%
+The dictionary references Chuck Norris several times, he is metioned under Fear, Law, Order and Chucktatorship.
+%
+Chuck Norris CAN balance the light-switch between ON and OFF.
+%
+If Chuck was ever captured, he could win a game of Russian Roulette with six bullets in the revolver, he would shoot everyone else!
+%
+In a rain storm Chuck Norris stays dry. Rain drops are scared to hit him.
+%
+Chuck Norris is the reason tumbleweeds tumble
+%
+The Earth was almost destroyed by a 50 km wide asteroid in 1984, but Chuck Norris roundhouse kicked it into the Sun.
+%
+Chuck Norris can terminate a repeating decimal.
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Chuck Norris doesn't look for fun. The fun looks for Chuck Norris.
+%
+Chuck Norris starts his day with 6 live chickens two cows, three pigs and a boiling hot cup of pure fury
+%
+The only word that rhymes with orange is Chuck Norris
+%
+Everyone is so scared of Chuck Norris that they kiss his arse by writing these facts, too right they should
+%
+gmail@chucknorris.com
+%
+Chuck Norris play's Texas hold em with Zeus, every second Wednesday of the month
+%
+Chuck Norris has killed the Dead Sea
+%
+On the keyboard there is no control button because Chuck Norris is always in control.
+%
+The truth hurts dosen't it, Chuck Norris' truth kills.
+%
+Chuck Norris sent a BBM to an iphone.
+%
+When Presidents speak, their nation listens. When Chuck Norris blinks, the whole World listens.
+%
+Chuck Norris once cried just to see what it was like. The end result was the creation of life.
+%
+Chuck Norris is the reason that the world will end in 2012. He was getting bored with the Earth
+%
+When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.
+%
+Chuck Norris doesn't read books. He stares them down until he gets the information he wants.
+%
+There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.
+%
+Outer space exists because it's afraid to be on the same planet with Chuck Norris.
+%
+Chuck Norris does not sleep. He waits.
+%
+Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs.
+%
+Chuck Norris is the reason why Waldo is hiding.
+%
+Chuck Norris counted to infinity - twice.
+%
+There is no chin behind Chuck Norris’ beard. There is only another fist.
+%
+When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.
+%
+Chuck Norris is so fast, he can run around the world and punch himself in the back of the head.
+%
+Chuck Norris' hand is the only hand that can beat a Royal Flush.
+%
+Chuck Norris can lead a horse to water AND make it drink.
+%
+Chuck Norris doesn’t wear a watch. HE decides what time it is.
+%
+Chuck Norris can slam a revolving door.
+%
+Chuck Norris does not get frostbite. Chuck Norris bites frost.
+%
+Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV.
+%
+Contrary to popular belief, America is not a democracy, it is a Chucktatorship.
+%
+If you spell Chuck Norris in Scrabble, you win. Forever.
+%
+Guns don't kill people. Chuck Norris kills people.
+%
+There is no theory of evolution. Just a list of animals Chuck Norris allows to live.
+%
+The chief export of Chuck Norris is Pain.
+%
+Chuck Norris has two speeds. Walk, and Kill.
+%
+The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer.
+%
+Chuck Norris drives an ice cream truck covered in human skulls.
+%
+Chuck Norris is my Homeboy.
+%
+Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING.
+%
+Chuck Norris uses pepper spray to spice up his steaks.
+%
+Chuck Norris once roundhouse kicked someone so hard that his foot broke the speed of light, went back in time, and killed Amelia Earhart while she was flying over the Pacific Ocean.
+%
+Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down.
+%
+Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing.
+%
+The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably.
+%
+Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on earth.
+%
+Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous.
+%
+If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face.
+%
+When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever.
+%
+The quickest way to a man's heart is with Chuck Norris' fist.
+%
+Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear.
+%
+CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time.
+%
+Chuck Norris can win a game of Connect Four in only three moves.
+%
+What was going through the minds of all of Chuck Norris' victims before they died? His shoe.
+%
+Chuck Norris is the only man to ever defeat a brick wall in a game of tennis.
+%
+Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide.
+%
+Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out.
+%
+Chuck Norris doesn’t wash his clothes, he disembowels them.
+%
+A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there.
+%
+Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia.
+%
+Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre.
+%
+Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch."
+%
+Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face.
+%
+Only Chuck Norris is stronger than an Altoid.
+%
+Chuck Norris has a battlecruiser AND a car.
+%
+Chuck Norris burnt a fire proof vest, UNDERWATER!
+%
+Chuck Norris was once turned down for American Idol. When Simon was questioned about it, he replied "I'm retiring after this season". I wonder why?
+%
+Chuck Norris doesn't cheat death, he beats it fair and square.
+%
+When Chuck Norris roundhouse-kicks you HE decides when you will feel the impact .
+%
+Chuck Norris made the big bang just by clicking his fingers
+%
+Trick me once, shame on you, trick Chuck Norris.....rest in peace.
+%
+Chuck Norris doesn't fight.  He gives motivational seminars to die on their own to avoid a roundhouse kick to the face.
+%
+This one time at band camp... BAM! Chuck Norris.
+%
+Chuck Norris protects his body guards.
+%
+Chuck Norris watched the first steps on the moon... From his summer home on Mars
+%
+The Earth is made up of two-thirds water and one-third Chuck Norris.
+%

+ 2 - 0
plugins/cloudapp/cloudapp.plugin.zsh

@@ -0,0 +1,2 @@
+#!/bin/zsh
+alias cloudapp=$ZSH/plugins/cloudapp/cloudapp.rb

+ 60 - 0
plugins/cloudapp/cloudapp.rb

@@ -0,0 +1,60 @@
+#!/usr/bin/env ruby
+#
+# cloudapp
+# Zach Holman / @holman
+#
+# Uploads a file from the command line to CloudApp, drops it into your 
+# clipboard (on a Mac, at least).
+#
+# Example:
+#
+#   cloudapp drunk-blake.png
+#
+# This requires Aaron Russell's cloudapp_api gem:
+#
+#   gem install cloudapp_api
+#
+# Requires you set your CloudApp credentials in ~/.cloudapp as a simple file of:
+#
+#   email
+#   password
+
+require 'rubygems'
+begin
+  require 'cloudapp_api'
+rescue LoadError
+  puts "You need to install cloudapp_api: gem install cloudapp_api"
+  exit!(1)
+end
+
+config_file = "#{ENV['HOME']}/.cloudapp"
+unless File.exist?(config_file)
+  puts "You need to type your email and password (one per line) into "+
+       "`~/.cloudapp`"
+  exit!(1)
+end
+
+email,password = File.read(config_file).split("\n")
+
+class HTTParty::Response
+  # Apparently HTTPOK.ok? IS NOT OKAY WTFFFFFFFFFFUUUUUUUUUUUUUU
+  # LETS MONKEY PATCH IT I FEEL OKAY ABOUT IT
+  def ok? ; true end
+end
+
+if ARGV[0].nil?
+   puts "You need to specify a file to upload."
+   exit!(1)
+end
+
+CloudApp.authenticate(email,password)
+url = CloudApp::Item.create(:upload, {:file => ARGV[0]}).url
+
+# Say it for good measure.
+puts "Uploaded to #{url}."
+
+# Get the embed link.
+url = "#{url}/#{ARGV[0].split('/').last}"
+
+# Copy it to your (Mac's) clipboard.
+`echo '#{url}' | tr -d "\n" | pbcopy`

+ 58 - 0
plugins/cloudfoundry/README.md

@@ -0,0 +1,58 @@
+# Cloudfoundry Plugin
+
+This plugin is intended to offer a few simple aliases for regular users of the [Cloud Foundry Cli][1]. Most are just simple aliases that will save a bit of typing. Others include mini functions and or accept parameters. Take a look at the table below for details.
+
+| Alias    | Command                     | Description                                                              |
+|----------|-----------------------------|--------------------------------------------------------------------------|
+| cfl      | `cf login`                  | Login to Cloud Foundry                                                   |
+| cft      | `cf target`                 | Target the cli at a specific Org/Space in Cloud Foundry                  |
+| cfa      | `cf apps`                   | List all applications in the current Org/Space                           |
+| cfs      | `cf services`               | List all services in the current Org/Space                               |
+| cfm      | `cf marketplace`            | List the services available in the Marketplace                           |
+| cfp      | `cf push`                   | Push your application code to Cloud Foundry                              |
+| cfcs     | `cf create-service`         | Create a service based on a Marketplace offering                         |
+| cfbs     | `cf bind-service`           | Bind an application to a service you created                             |
+| cfus     | `cf unbind-service`         | Unbind a service from an application                                     |
+| cfds     | `cf delete-service`         | Delete a service you no longer have bound                                |
+| cfup     | `cf cups`                   | Create a "user-provided-service"                                         |
+| cflg     | `cf logs`                   | Tail the logs of an application (requires <APP_NAME>)                    |
+| cfr      | `cf routes`                 | List all the routes in the current Space                                 |
+| cfe      | `cf env`                    | Show the environment variables for an application (requires <APP_NAME>)  |
+| cfsh     | `cf ssh`                    | Attach to a running container (requires an <APP_NAME> etc.)              |
+| cfsc     | `cf scale`                  | Scale an application (requires an <APP_NAME> etc.)                       |
+| cfev     | `cf events`                 | Show the application events (requires <APP_NAME>)                        |
+| cfdor    | `cf delete-orphaned-routes` | Delete routes that are no longer bound to applications                   |
+| cfbpk    | `cf buildpacks`             | List the available buildpacks                                            |
+| cfdm     | `cf domains`                | List the domains associates with this Cloud Foundry foundation           |
+| cfsp     | `cf spaces`                 | List all the Spaces in the current Org                                   |
+| cfap     | `cf app`                    | Show the details of a deployed application (requires <APP_NAME>)         |
+| cfh.     | `export CF_HOME=$PWD/.cf`   | Set the current directory as CF_HOME                                     |
+| cfh~     | `export CF_HOME=~/.cf`      | Set the user's root directory as CF_HOME                                 |
+| cfhu     | `unset CF_HOME`             | Unsets CF_HOME                                                           |
+| cfpm     | `cf push -f`                | Push an application using a manifest (requires <MANIFEST_FILE> location) |
+| cflr     | `cf logs --recent`          | Show the recent logs (requires <APP_NAME>)                               |
+| cfsrt    | `cf start`                  | Start an application (requires <APP_NAME>)                               |
+| cfstp    | `cf stop`                   | Stop an application (requires <APP_NAME>)                                |
+| cfstg    | `cf restage`                | Restage an application (requires <APP_NAME>)                             |
+| cfdel    | `cf delete`                 | Delete an application (requires <APP_NAME>)                              |
+| cfsrtall | -                           | Start all apps that are currently in the "Stopped" state                 |
+| cfstpall | -                           | Stop all apps that are currently in the "Started" state                  |
+
+For help and advice on what any of the commands does, consult the built in `cf` help functions as follows:-
+
+```bash
+cf help # List the most popular and commonly used commands
+cf help -a # Complete list of all possible commands
+cf <COMMAND_NAME> --help # Help on a specific command including arguments and examples
+```
+
+Alternatively, seek out the [online documentation][3]. And don't forget, there are loads of great [community plugins for the cf-cli][4] command line tool that can greatly extend its power and usefulness.
+
+## Contributors
+
+Contributed to `oh_my_zsh` by [benwilcock][2].  
+
+[1]: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
+[2]: https://github.com/benwilcock
+[3]: https://docs.cloudfoundry.org/cf-cli/getting-started.html
+[4]: https://plugins.cloudfoundry.org/

+ 34 - 0
plugins/cloudfoundry/cloudfoundry.plugin.zsh

@@ -0,0 +1,34 @@
+# Some Useful CloudFoundry Aliases & Functions
+alias cfl="cf login"
+alias cft="cf target"
+alias cfa="cf apps"
+alias cfs="cf services"
+alias cfm="cf marketplace"
+alias cfp="cf push"
+alias cfcs="cf create-service"
+alias cfbs="cf bind-service"
+alias cfus="cf unbind-service"
+alias cfds="cf delete-service"
+alias cfup="cf cups"
+alias cflg="cf logs"
+alias cfr="cf routes"
+alias cfe="cf env"
+alias cfsh="cf ssh"
+alias cfsc="cf scale"
+alias cfev="cf events"
+alias cfdor="cf delete-orphaned-routes"
+alias cfbpk="cf buildpacks"
+alias cfdm="cf domains"
+alias cfsp="cf spaces"
+function cfap() { cf app $1 }
+function cfh.() { export CF_HOME=$PWD/.cf }
+function cfh~() { export CF_HOME=~/.cf }
+function cfhu() { unset CF_HOME }
+function cfpm() { cf push -f $1 }
+function cflr() { cf logs $1 --recent }
+function cfsrt() { cf start $1 }
+function cfstp() { cf stop $1 }
+function cfstg() { cf restage $1 }
+function cfdel() { cf delete $1 }
+function cfsrtall() {cf apps | awk '/stopped/ { system("cf start " $1)}'}
+function cfstpall() {cf apps | awk '/started/ { system("cf stop " $1)}'}

+ 82 - 0
plugins/codeclimate/_codeclimate

@@ -0,0 +1,82 @@
+#compdef codeclimate
+
+_codeclimate_all_engines() {
+  engines_all=(`codeclimate engines:list | tail -n +2 | gawk '{ print $2 }' | gawk -F: '{ print $1 }'`)
+}
+
+_codeclimate_installed_engines() {
+  _codeclimate_all_engines
+
+  engines_installed=()
+
+  if [ -e .codeclimate.yml ]
+  then
+    for engine in $engines_all
+    do
+      if grep -q $engine ".codeclimate.yml"
+      then
+        engines_installed+=$engine
+      fi
+    done
+  fi
+}
+
+_codeclimate_not_installed_engines() {
+  _codeclimate_all_engines
+
+  engines_not_installed=()
+
+  if [ -e .codeclimate.yml ]
+  then
+    for engine in $engines_all
+    do
+      if ! grep -q $engine ".codeclimate.yml"
+      then
+        engines_not_installed+=$engine
+      fi
+    done
+  fi
+}
+
+local curcontext="$curcontext" state line ret=1
+local expl
+local -a engines_all engines_installed engines_not_installed
+
+_arguments \
+  '1: :->cmds' \
+  '*:: :->args' && ret=0
+
+case $state in
+  cmds)
+    _values "bundle command" \
+      "analyze[Analyze all relevant files in the current working directory]" \
+      "console[Start an interactive session providing access to the classes within the CLI]" \
+      "engines\:disable[Prevents the engine from being used in this project]" \
+      "engines\:enable[This engine will be run the next time your project is analyzed]" \
+      "engines\:install[Compares the list of engines in your .codeclimate.yml file to those that are currently installed, then installs any missing engines]" \
+      "engines\:list[Lists all available engines in the Code Climate Docker Hub]" \
+      "engines\:remove[Removes an engine from your .codeclimate.yml file]" \
+      "help[Displays a list of commands that can be passed to the Code Climate CLI]" \
+      "init[Generates a new .codeclimate.yml file in the current working directory]" \
+      "validate-config[Validates the .codeclimate.yml file in the current working directory]" \
+      "version[Displays the current version of the Code Climate CLI]"
+    ret=0
+    ;;
+  args)
+    case $line[1] in
+      engines:enable)
+        _codeclimate_not_installed_engines
+        _wanted engines_not_installed expl 'not installed engines' compadd -a engines_not_installed ;;
+      engines:disable|engines:remove)
+        _codeclimate_installed_engines
+        _wanted engines_installed expl 'installed engines' compadd -a engines_installed ;;
+      analyze)
+        _arguments \
+          '-f:Output Format:(text json)'
+        ret=0
+        ;;
+    esac
+    ;;
+esac
+
+return ret

+ 31 - 0
plugins/coffee/README.md

@@ -0,0 +1,31 @@
+## Coffeescript Plugin
+
+This plugin provides aliases for quickly compiling and previewing your
+coffeescript code.
+
+When writing Coffeescript it's very common to want to preview the output of a
+certain snippet of code, either because you want to test the output or because
+you'd like to execute it in a browser console which doesn't accept Coffeescript.
+
+Preview the compiled result of your coffeescript with `cf "code"` as per the
+following:
+
+```zsh
+$ cf 'if a then b else c'
+if (a) {
+  b;
+} else {
+  c;
+}
+```
+
+Also provides the following aliases:
+
+* **cfc:** Copies the compiled JS to your clipboard. Very useful when you want
+           to run the code in a JS console.
+
+* **cfp:** Compiles from your currently copied clipboard. Useful when you want 
+           to compile large/multi-line snippets
+
+* **cfpc:** Paste coffeescript from clipboard, compile to JS, then copy the
+            the result back to clipboard.

+ 81 - 0
plugins/coffee/_coffee

@@ -0,0 +1,81 @@
+#compdef coffee
+# ------------------------------------------------------------------------------
+# Copyright (c) 2011 Github zsh-users - https://github.com/zsh-users
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of the zsh-users nor the
+#       names of its contributors may be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+#  Completion script for Coffee.js v0.6.11 (https://coffeescript.org)
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+#  * Mario Fernandez (https://github.com/sirech)
+#  * Dong Weiming (https://github.com/dongweiming)
+#
+# ------------------------------------------------------------------------------
+
+local curcontext="$curcontext" state line ret=1 version opts first second third
+typeset -A opt_args
+version=(${(f)"$(_call_program version $words[1] --version)"})
+version=${${(z)${version[1]}}[3]}
+first=$(echo $version|cut -d '.' -f 1)
+second=$(echo $version|cut -d '.' -f 2)
+third=$(echo $version|cut -d '.' -f 3)
+if (( $first < 2 )) &&  (( $second < 7 )) && (( $third < 3 ));then
+  opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]'
+         '(-r --require)'{-r,--require}'[require a library before executing your script]:library')
+fi
+
+
+_arguments -C \
+  '(- *)'{-h,--help}'[display this help message]' \
+  '(- *)'{-v,--version}'[display the version number]' \
+  $opts \
+  '(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \
+  '(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \
+  '(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \
+  '(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \
+  '(--nodejs)--nodejs[pass options directly to the "node" binary]' \
+  '(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \
+  '(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \
+  '(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \
+  '(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \
+  '(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \
+  '(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \
+  '(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \
+  '*:script or directory:_files' && ret=0
+
+return ret
+
+# Local Variables:
+# mode: Shell-Script
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# sh-basic-offset: 2
+# End:
+# vim: ft=zsh sw=2 ts=2 et

+ 16 - 0
plugins/coffee/coffee.plugin.zsh

@@ -0,0 +1,16 @@
+#!/bin/zsh
+
+# compile a string of coffeescript and print to output
+cf () {
+  coffee -peb "$1"
+}
+# compile & copy to clipboard
+cfc () {
+  cf "$1" | clipcopy
+}
+
+# compile from clipboard & print
+alias cfp='cf "$(clippaste)"'
+
+# compile from clipboard and copy to clipboard
+alias cfpc='cfp | clipcopy'

+ 6 - 0
plugins/colemak/colemak-less

@@ -0,0 +1,6 @@
+n    forw-line
+e    back-line
+k    repeat-search
+\ek  repeat-search-all
+K    reverse-search
+\eK  reverse-search-all

+ 22 - 0
plugins/colemak/colemak.plugin.zsh

@@ -0,0 +1,22 @@
+# ctrl-j newline
+bindkey '^n' accept-line
+bindkey -a '^n' accept-line
+
+# another rotation to match qwerty
+bindkey -a 'n' down-line-or-history
+bindkey -a 'e' up-line-or-history
+bindkey -a 'i' vi-forward-char
+
+# make qwerty
+bindkey -a 'k' vi-repeat-search
+bindkey -a 'K' vi-rev-repeat-search
+bindkey -a 'u' vi-insert
+bindkey -a 'U' vi-insert-bol
+bindkey -a 'l' vi-undo-change
+bindkey -a 'N' vi-join
+
+# spare
+bindkey -a 'j' vi-forward-word-end
+bindkey -a 'J' vi-forward-blank-word-end
+
+lesskey $ZSH/plugins/colemak/colemak-less

+ 32 - 0
plugins/colored-man-pages/colored-man-pages.plugin.zsh

@@ -0,0 +1,32 @@
+if [[ "$OSTYPE" = solaris* ]]
+then
+	if [[ ! -x "$HOME/bin/nroff" ]]
+	then
+		mkdir -p "$HOME/bin"
+		cat > "$HOME/bin/nroff" <<EOF
+#!/bin/sh
+if [ -n "\$_NROFF_U" -a "\$1,\$2,\$3" = "-u0,-Tlp,-man" ]; then
+	shift
+	exec /usr/bin/nroff -u\$_NROFF_U "\$@"
+fi
+#-- Some other invocation of nroff
+exec /usr/bin/nroff "\$@"
+EOF
+		chmod +x "$HOME/bin/nroff"
+	fi
+fi
+
+function man() {
+	env \
+		LESS_TERMCAP_mb=$(printf "\e[1;31m") \
+		LESS_TERMCAP_md=$(printf "\e[1;31m") \
+		LESS_TERMCAP_me=$(printf "\e[0m") \
+		LESS_TERMCAP_se=$(printf "\e[0m") \
+		LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
+		LESS_TERMCAP_ue=$(printf "\e[0m") \
+		LESS_TERMCAP_us=$(printf "\e[1;32m") \
+		PAGER="${commands[less]:-$PAGER}" \
+		_NROFF_U=1 \
+		PATH="$HOME/bin:$PATH" \
+			man "$@"
+}

+ 18 - 0
plugins/colorize/README.md

@@ -0,0 +1,18 @@
+# colorize
+
+With this plugin you can syntax-highlight file contents of over 300 supported languages and other text formats.
+
+To use it, add colorize to the plugins array of your zshrc file:
+```
+plugins=(... colorize)
+```
+
+## Usage
+
+* `ccat <file> [files]`: colorize the contents of the file (or files, if more than one are provided). If no arguments are passed it will colorize the standard input or stdin.
+
+Colorize will highlight the content based on the filename extension. If it can't find a syntax-highlighting method for a given extension, it will try to find one by looking at the file contents. If no highlight method is found it will just cat the file normally, without syntax highlighting.
+
+## Requirements
+
+You have to install Pygments first: [pygments.org](http://pygments.org/download/)

+ 28 - 0
plugins/colorize/colorize.plugin.zsh

@@ -0,0 +1,28 @@
+# easier alias to use the plugin
+alias ccat='colorize_via_pygmentize'
+
+colorize_via_pygmentize() {
+    if ! (( $+commands[pygmentize] )); then
+        echo "package 'Pygments' is not installed!"
+        return 1
+    fi
+
+    # pygmentize stdin if no arguments passed
+    if [ $# -eq 0 ]; then
+        pygmentize -g
+        return $?
+    fi
+
+    # guess lexer from file extension, or
+    # guess it from file contents if unsuccessful
+    local FNAME lexer
+    for FNAME in $@
+    do
+        lexer=$(pygmentize -N "$FNAME")
+        if [[ $lexer != text ]]; then
+            pygmentize -l "$lexer" "$FNAME"
+        else
+            pygmentize -g "$FNAME"
+        fi
+    done
+}

+ 31 - 0
plugins/command-not-found/README.md

@@ -0,0 +1,31 @@
+# command-not-found plugin
+
+This plugin uses the command-not-found package for zsh to provide suggested packages to be installed if a command cannot be found.
+
+To use it, add `command-not-found` to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... command-not-found)
+```
+
+An example of how this plugin works in Ubuntu:
+```
+$ mutt
+The program 'mutt' can be found in the following packages:
+ * mutt
+ * mutt-kz
+ * mutt-patched
+Try: sudo apt install <selected package>
+```
+
+### Supported platforms
+
+It works out of the box with the command-not-found packages for:
+
+- [Ubuntu](https://www.porcheron.info/command-not-found-for-zsh/)
+- [Debian](https://packages.debian.org/search?keywords=command-not-found)
+- [Arch Linux](https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found)
+- [macOS (Homebrew)](https://github.com/Homebrew/homebrew-command-not-found)
+- [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound)
+
+You can add support for other platforms by submitting a Pull Request.

+ 33 - 0
plugins/command-not-found/command-not-found.plugin.zsh

@@ -0,0 +1,33 @@
+# Uses the command-not-found package zsh support
+# as seen in https://www.porcheron.info/command-not-found-for-zsh/
+# this is installed in Ubuntu
+
+[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
+
+# 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
+
+# OSX command-not-found support
+# https://github.com/Homebrew/homebrew-command-not-found
+if type brew &> /dev/null; then
+  if brew command command-not-found-init > /dev/null 2>&1; then
+    eval "$(brew command-not-found-init)";
+  fi
+fi

+ 87 - 0
plugins/common-aliases/common-aliases.plugin.zsh

@@ -0,0 +1,87 @@
+# Advanced Aliases.
+# Use with caution
+#
+
+# ls, the common ones I use a lot shortened for rapid fire usage
+alias l='ls -lFh'     #size,show type,human readable
+alias la='ls -lAFh'   #long list,show almost all,show type,human readable
+alias lr='ls -tRFh'   #sorted by date,recursive,show type,human readable
+alias lt='ls -ltFh'   #long list,sorted by date,show type,human readable
+alias ll='ls -l'      #long list
+alias ldot='ls -ld .*'
+alias lS='ls -1FSsh'
+alias lart='ls -1Fcart'
+alias lrt='ls -1Fcrt'
+
+alias zshrc='${=EDITOR} ~/.zshrc' # Quick access to the ~/.zshrc file
+
+alias grep='grep --color'
+alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '
+
+alias t='tail -f'
+
+# Command line head / tail shortcuts
+alias -g H='| head'
+alias -g T='| tail'
+alias -g G='| grep'
+alias -g L="| less"
+alias -g M="| most"
+alias -g LL="2>&1 | less"
+alias -g CA="2>&1 | cat -A"
+alias -g NE="2> /dev/null"
+alias -g NUL="> /dev/null 2>&1"
+alias -g P="2>&1| pygmentize -l pytb"
+
+alias dud='du -d 1 -h'
+alias duf='du -sh *'
+alias fd='find . -type d -name'
+alias ff='find . -type f -name'
+
+alias h='history'
+alias hgrep="fc -El 0 | grep"
+alias help='man'
+alias p='ps -f'
+alias sortnr='sort -n -r'
+alias unexport='unset'
+
+alias rm='rm -i'
+alias cp='cp -i'
+alias mv='mv -i'
+
+# zsh is able to auto-do some kungfoo
+# depends on the SUFFIX :)
+if is-at-least 4.2.0; then
+  # open browser on urls
+  if [[ -n "$BROWSER" ]]; then
+    _browser_fts=(htm html de org net com at cx nl se dk)
+    for ft in $_browser_fts; do alias -s $ft=$BROWSER; done
+  fi
+
+  _editor_fts=(cpp cxx cc c hh h inl asc txt TXT tex)
+  for ft in $_editor_fts; do alias -s $ft=$EDITOR; done
+
+  if [[ -n "$XIVIEWER" ]]; then
+    _image_fts=(jpg jpeg png gif mng tiff tif xpm)
+    for ft in $_image_fts; do alias -s $ft=$XIVIEWER; done
+  fi
+
+  _media_fts=(ape avi flv m4a mkv mov mp3 mpeg mpg ogg ogm rm wav webm)
+  for ft in $_media_fts; do alias -s $ft=mplayer; done
+
+  #read documents
+  alias -s pdf=acroread
+  alias -s ps=gv
+  alias -s dvi=xdvi
+  alias -s chm=xchm
+  alias -s djvu=djview
+
+  #list whats inside packed file
+  alias -s zip="unzip -l"
+  alias -s rar="unrar l"
+  alias -s tar="tar tf"
+  alias -s tar.gz="echo "
+  alias -s ace="unace l"
+fi
+
+# Make zsh know about hosts already accessed by SSH
+zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'

Some files were not shown because too many files changed in this diff