From 7fb17127c7ef2ff11240af5c42430ae3ae1c0369 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Wed, 24 Jul 2013 14:30:12 -0700 Subject: [PATCH 001/122] carton completion plugin --- plugins/carton/carton.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/carton/carton.plugin.zsh diff --git a/plugins/carton/carton.plugin.zsh b/plugins/carton/carton.plugin.zsh new file mode 100644 index 000000000..23868b09c --- /dev/null +++ b/plugins/carton/carton.plugin.zsh @@ -0,0 +1,6 @@ +if which carton &> /dev/null +then + source $(dirname $(which carton))/../etc/carton_completion.zsh +else + print "zsh carton plugin: carton not found" +fi From 55c90b1d6cbda581f9ccd41ea1c8da15da98d5ee Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Fri, 26 Jul 2013 20:00:45 -0700 Subject: [PATCH 002/122] grunt completion courtesy of @yonchu: https://github.com/yonchu/grunt-zsh-completion --- plugins/grunt/grunt.plugin.zsh | 253 +++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 plugins/grunt/grunt.plugin.zsh diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh new file mode 100644 index 000000000..48f6cb5a2 --- /dev/null +++ b/plugins/grunt/grunt.plugin.zsh @@ -0,0 +1,253 @@ +#compdef grunt +# ----------------------------------------------------------------------------- +# _grunt +# +# Completion script for grunt. +# - https://github.com/gruntjs/grunt +# - https://github.com/gruntjs/grunt-cli +# +# ----------------------------------------------------------------------------- +# +# Version : 0.1.0 +# Author : Yonchu +# License : MIT License +# Repository : https://github.com/yonchu/grunt-zsh-completion +# Last Change : 22 Jul 2013. +# +# Copyright (c) 2013 Yonchu. +# +# ----------------------------------------------------------------------------- +# USAGE +# ----- +# +# Enable caching: +# +# If you want to use the cache, set the followings in your .zshrc: +# +# zstyle ':completion:*' use-cache yes +# +# +# Settings: +# +# - Show grunt file path: +# zstyle ':completion::complete:grunt::options:' show_grunt_path yes +# +# - Cache expiration days (default: 7): +# zstyle ':completion::complete:grunt::options:' expire 1 +# +# - Not update options cache if target gruntfile is changed. +# zstyle ':completion::complete:grunt::options:' no_update_options yes +# +# Note that if you change the zstyle settings, +# you should delete the cache file and restart zsh. +# +# $ rm ~/.zcompcache/grunt +# $ exec zsh +# +# ----------------------------------------------------------------------------- + +function _grunt() { + local curcontext="$curcontext" update_policy state + local show_grunt_path update_msg gruntfile opts tasks + + # Setup cache-policy. + zstyle -s ":completion:${curcontext}:" cache-policy update_policy + if [[ -z $update_policy ]]; then + zstyle ":completion:${curcontext}:" cache-policy __grunt_caching_policy + fi + + # Check show_path option. + zstyle -b ":completion:${curcontext}:options:" show_grunt_path show_grunt_path + + # Get current gruntfile. + gruntfile=$(__grunt_get_gruntfile) + + # Initialize opts and tasks. + opts=() + tasks=() + + # Add help options. + opts+=('(- 1 *)'{-h,--help}'[Display this help text.]') + + ## Complete without gruntfile. + if [[ ! -f $gruntfile ]]; then + _arguments "${opts[@]}" + return + fi + + ## Complete with gruntfile. + # Retrieve cache. + if ! __grunt_update_cache "$gruntfile"; then + update_msg=' (cache updated)' + fi + + # Make optioins completion. + if [[ ${#__grunt_opts} -gt 0 ]]; then + opts+=("${__grunt_opts[@]}") + fi + + # Complete arguments. + _arguments \ + "${opts[@]}" \ + '*: :->tasks' \ + && return + + case $state in + tasks) + if [[ $show_grunt_path == 'yes' ]]; then + update_msg="$update_msg: ${${gruntfile/#$HOME/~}%/}" + fi + # Make tasks completion. + if [[ ${#__grunt_tasks} -gt 0 ]]; then + tasks+=("${__grunt_tasks[@]}") + _describe -t grunt-task "$verbose grunt task$update_msg" tasks || return 1 + fi + ;; + esac + + return 0 +} + +# Cache policy: +# The cache file name: grunt +# The cache variable name: __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks +function __grunt_update_cache() { + # TODO + local version='0.1.0' + local is_updating=0 + local gruntfile="$1" + local grunt_info no_update_options cache_path + + # Check no_update_options option. + zstyle -b ":completion:${curcontext}:options:" no_update_options no_update_options + + + if ! ( (( $+__grunt_gruntfile )) \ + && (( $+__grunt_opts )) \ + && (( $+__grunt_tasks )) ) \ + && ! _retrieve_cache 'grunt'; then + is_updating=1 + fi + + if [[ $gruntfile != $__grunt_gruntfile ]]; then + # Except for --help options. + __grunt_gruntfile=$gruntfile + if [[ $no_update_options == 'yes' ]]; then + if [[ $PREFIX == ${PREFIX#-} ]]; then + # Not options completions. + is_updating=1 + elif [[ ${#__grunt_opts} -lt 2 ]]; then + is_updating=1 + else + unset __grunt_gruntfile + fi + else + is_updating=1 + fi + else + if [[ $PREFIX != ${PREFIX#-} && ${#__grunt_opts} -gt 1 ]]; then + unset __grunt_gruntfile + fi + fi + + if _cache_invalid 'grunt'; then + is_updating=1 + fi + + # Check _grunt version. + if [[ $__grunt_version != $version ]]; then + is_updating=1 + fi + + if [[ $is_updating -ne 0 ]]; then + # Update caceh. + __grunt_version=$version + __grunt_gruntfile=$gruntfile + is_updating=1 + grunt_info=$(grunt --help --no-color --gruntfile "$__grunt_gruntfile" 2>/dev/null) + __grunt_opts=(${(f)"$(__grunt_get_opts "$grunt_info")"}) + __grunt_tasks=(${(f)"$(__grunt_get_tasks "$grunt_info")"}) + _store_cache 'grunt' __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks + fi + return $is_updating +} + +function __grunt_get_tasks() { + echo -E "$1" \ + | grep 'Available tasks' -A 100 \ + | grep '^ ' \ + | sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' \ + | sed -e 's/ /:/' +} + +function __grunt_get_opts() { + local opt_hunk opt_sep opt_num line opt + opt_hunk=$(echo -E "$1" \ + | grep 'Options$' -A 100 \ + | sed '1 d' \ + | sed -e 's/[[:blank:]]*$//' \ + ) + + opt_sep=() + opt_hunk=(${(f)opt_hunk}) + opt_num=0 + for line in "$opt_hunk[@]"; do + opt=$(echo -E "$line" | sed -e 's/^[[:blank:]]*//') + if [[ $line == $opt ]]; then + break + fi + if [[ $opt != ${opt#-} ]]; then + # Start with - + (( opt_num++ )) + opt=$(echo -E "$opt" | sed 's/^\(\(--[^ ]*\)\(, \(-[^ ]*\)\)*\) */\2\\t\4\\\t/') + fi + opt_sep[$opt_num]=("${opt_sep[$opt_num]}${opt}") + done + + for line in "$opt_sep[@]"; do + opt=(${(s:\t:)line}) + if [[ ${opt[1]} == '--help' ]]; then + continue + fi + if [[ ${#opt} -eq 2 ]]; then + echo -E "(${opt[1]})${opt[1]}[${opt[2]}]" + else + echo -E "(${opt[1]},${opt[2]})${opt[1]}[${opt[3]}]" + echo -E "(${opt[1]},${opt[2]})${opt[2]}[${opt[3]}]" + fi + done +} + +function __grunt_get_gruntfile() { + local gruntfile + local curpath="$PWD" + while [ "$curpath" ]; do + for gruntfile in "$curpath/"{G,g}runtfile.{js,coffee}; do + if [[ -e "$gruntfile" ]]; then + echo "$gruntfile" + return + fi + done + curpath=${curpath%/*} + done + return 1 +} + +function __grunt_caching_policy() { + # Returns status zero if the completions cache needs rebuilding. + + # Rebuild if .agignore more recent than cache. + if [[ -f $__grunt_gruntfile && $__grunt_gruntfile -nt $1 ]]; then + # Invalid cache because gruntfile is old. + return 0 + fi + + local -a oldp + local expire + zstyle -s ":completion:${curcontext}:options:" expire expire || expire=7 + # Rebuild if cache is more than $expire days. + oldp=( "$1"(Nm+$expire) ) + (( $#oldp )) +} + +compdef _grunt grunt From 1af012d4991a36bfb0e2def3e67f5a0e56fc49e4 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Tue, 6 Aug 2013 13:28:52 -0700 Subject: [PATCH 003/122] carton was renamed to cask --- plugins/carton/carton.plugin.zsh | 6 ------ plugins/cask/cask.plugin.zsh | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) delete mode 100644 plugins/carton/carton.plugin.zsh create mode 100644 plugins/cask/cask.plugin.zsh diff --git a/plugins/carton/carton.plugin.zsh b/plugins/carton/carton.plugin.zsh deleted file mode 100644 index 23868b09c..000000000 --- a/plugins/carton/carton.plugin.zsh +++ /dev/null @@ -1,6 +0,0 @@ -if which carton &> /dev/null -then - source $(dirname $(which carton))/../etc/carton_completion.zsh -else - print "zsh carton plugin: carton not found" -fi diff --git a/plugins/cask/cask.plugin.zsh b/plugins/cask/cask.plugin.zsh new file mode 100644 index 000000000..c55862924 --- /dev/null +++ b/plugins/cask/cask.plugin.zsh @@ -0,0 +1,5 @@ +if which cask &> /dev/null; then + source $(dirname $(which cask))/../etc/cask_completion.zsh +else + print "zsh cask plugin: cask not found" +fi From 33ef34baa5f703ee7fcc502eabed4f1ab968127e Mon Sep 17 00:00:00 2001 From: Mitchel Humpherys Date: Tue, 7 Jan 2014 12:47:58 -0800 Subject: [PATCH 004/122] Fix gmt compdef Fix typo: gm -> gmt --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..c579d1e82 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -82,7 +82,7 @@ alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' alias gpoat='git push origin --all && git push origin --tags' alias gmt='git mergetool --no-prompt' -compdef _git gm=git-mergetool +compdef _git gmt=git-mergetool alias gg='git gui citool' alias gga='git gui citool --amend' From d3acea3965ebe13d6ed9885984ba8f5cc8ab4936 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sat, 14 Dec 2013 18:57:46 +0100 Subject: [PATCH 005/122] Updated cabal plugin with Cabal 1.18 commands. --- plugins/cabal/cabal.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index 9f76add7a..acd7f8287 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -23,6 +23,7 @@ function _cabal_commands() { "copy:Copy teh files into the install locations" "configure:Prepare to build the package" "fetch:Downloads packages for later installation" + "get:Gets a package's source code" "haddock:Generate HAddock HTML documentation" "help:Help about commands" "hscolour:Generate HsColour colourised code, in HTML format" @@ -31,7 +32,10 @@ function _cabal_commands() { "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" From 859a37d4f14838b20d09b8d7814f270d9b54b8e5 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sun, 8 Jun 2014 12:04:52 +0200 Subject: [PATCH 006/122] Fixed typo in cabal plugin. --- plugins/cabal/cabal.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index acd7f8287..3e611ddcc 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -20,7 +20,7 @@ function _cabal_commands() { "build:Make this package ready for installation" "check:Check the package for common mistakes" "clean:Clean up after a build" - "copy:Copy teh files into the install locations" + "copy:Copy the files into the install locations" "configure:Prepare to build the package" "fetch:Downloads packages for later installation" "get:Gets a package's source code" From 1ab0f771bc85bbdd86d14e616281cc138c3afe91 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sun, 8 Jun 2014 12:08:02 +0200 Subject: [PATCH 007/122] Updated cabal commands for Cabal 1.20 --- plugins/cabal/cabal.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index 3e611ddcc..b59438f98 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -17,14 +17,15 @@ function _cabal_commands() { subcommand) subcommands=( "bench:Run the benchmark, if any (configure with UserHooks)" - "build:Make this package ready for installation" + "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" "get:Gets a package's source code" - "haddock:Generate HAddock HTML documentation" + "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" From 1274a5e3ab23720e64cf2044cdbe6aa86d402864 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Mon, 9 Jun 2014 21:03:09 +0200 Subject: [PATCH 008/122] Added cabal freeze subcommand. --- plugins/cabal/cabal.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index b59438f98..148af5ccf 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -24,6 +24,7 @@ function _cabal_commands() { "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" From 49e10ae449d2e5570542e4f9011ea4e2fb14a348 Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Thu, 14 Aug 2014 00:01:35 +1000 Subject: [PATCH 009/122] Make 'ys' theme use hg repo info too --- themes/ys.zsh-theme | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme index a44f295f4..9332b677a 100644 --- a/themes/ys.zsh-theme +++ b/themes/ys.zsh-theme @@ -14,12 +14,35 @@ function box_name { # Directory info. local current_dir='${PWD/#$HOME/~}' +# VCS +YS_VCS_PROMPT_PREFIX1=" %{$fg[white]%}on%{$reset_color%} " +YS_VCS_PROMPT_PREFIX2=":%{$fg[cyan]%}" +YS_VCS_PROMPT_SUFFIX="%{$reset_color%}" +YS_VCS_PROMPT_DIRTY=" %{$fg[red]%}x" +YS_VCS_PROMPT_CLEAN=" %{$fg[green]%}o" + # Git info. local git_info='$(git_prompt_info)' -ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}on%{$reset_color%} git:%{$fg[cyan]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}x" -ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}o" +ZSH_THEME_GIT_PROMPT_PREFIX="${YS_VCS_PROMPT_PREFIX1}git${YS_VCS_PROMPT_PREFIX2}" +ZSH_THEME_GIT_PROMPT_SUFFIX="$YS_VCS_PROMPT_SUFFIX" +ZSH_THEME_GIT_PROMPT_DIRTY="$YS_VCS_PROMPT_DIRTY" +ZSH_THEME_GIT_PROMPT_CLEAN="$YS_VCS_PROMPT_CLEAN" + +# HG info +local hg_info='$(ys_hg_prompt_info)' +ys_hg_prompt_info() { + # make sure this is a hg dir + if [ -d '.hg' ]; then + echo -n "${YS_VCS_PROMPT_PREFIX1}hg${YS_VCS_PROMPT_PREFIX2}" + echo -n $(hg branch 2>/dev/null) + if [ -n "$(hg status 2>/dev/null)" ]; then + echo -n "$YS_VCS_PROMPT_DIRTY" + else + echo -n "$YS_VCS_PROMPT_CLEAN" + fi + echo -n "$YS_VCS_PROMPT_SUFFIX" + fi +} # Prompt format: \n # USER at MACHINE in DIRECTORY on git:BRANCH STATE [TIME] \n $ PROMPT=" @@ -29,6 +52,7 @@ PROMPT=" %{$fg[green]%}$(box_name) \ %{$fg[white]%}in \ %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${hg_info}\ ${git_info} \ %{$fg[white]%}[%*] %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" @@ -41,6 +65,7 @@ PROMPT=" %{$fg[green]%}$(box_name) \ %{$fg[white]%}in \ %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${hg_info}\ ${git_info} \ %{$fg[white]%}[%*] %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" From 1e7c6743a7b221cb2069a84c70890014597672d8 Mon Sep 17 00:00:00 2001 From: Giel van Schijndel Date: Mon, 15 Sep 2014 15:36:34 +0200 Subject: [PATCH 010/122] sudo: maintain cursor position I.e. when prefixing the current command-line with 'sudo ' maintain the current cursor position instead of jumping to the end of the line. --- plugins/sudo/sudo.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh index d12e06853..e3ba39918 100644 --- a/plugins/sudo/sudo.plugin.zsh +++ b/plugins/sudo/sudo.plugin.zsh @@ -13,9 +13,8 @@ # ------------------------------------------------------------------------------ sudo-command-line() { -[[ -z $BUFFER ]] && zle up-history -[[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER" -zle end-of-line + [[ -z $BUFFER ]] && zle up-history + [[ $BUFFER != sudo\ * ]] && LBUFFER="sudo $LBUFFER" } zle -N sudo-command-line # Defined shortcut keys: [Esc] [Esc] From b0013ceb29e4214a76c92bfbdc0d87354c374277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?= Date: Mon, 15 Sep 2014 12:13:43 -0300 Subject: [PATCH 011/122] remove path not found for linuxonly theme --- themes/linuxonly.zsh-theme | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/linuxonly.zsh-theme b/themes/linuxonly.zsh-theme index a11b80d7f..f9e0aa07d 100644 --- a/themes/linuxonly.zsh-theme +++ b/themes/linuxonly.zsh-theme @@ -13,7 +13,6 @@ local c7=$(printf "\033[38;5;149m") local c8=$(printf "\033[38;5;126m") local c9=$(printf "\033[38;5;162m") -local foopath=$(perl /home/scp1/bin/foopath) if [ "$TERM" = "linux" ]; then c1=$(printf "\033[34;1m") From e16d3e45d30fbf981f503b4d078d84c71a070a1d Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Thu, 6 Nov 2014 10:34:26 -0800 Subject: [PATCH 012/122] Add bgnotify plugin, a cross-platform background notifier! --- plugins/bgnotify/README.md | 39 +++++++++++++++++ plugins/bgnotify/bgnotify.plugin.zsh | 65 ++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 plugins/bgnotify/README.md create mode 100755 plugins/bgnotify/bgnotify.plugin.zsh diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md new file mode 100644 index 000000000..bf4b1fd09 --- /dev/null +++ b/plugins/bgnotify/README.md @@ -0,0 +1,39 @@ +# 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-notifer](https://github.com/alloy/terminal-notifier) + * `brew install terminal-notifier` (or `gem install terminal-notifier`) +- On ubuntu you're already all set! + + +## 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 +~~~ + diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh new file mode 100755 index 000000000..f204d9dc8 --- /dev/null +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -0,0 +1,65 @@ +#!/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 notify_formatted | grep -q 'function'); then + echo "using default notify_formatted" + function bgnotify_formatted { + ## exit_status, command, elapsed_time + [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" + bgnotify "$title" "$2" + } +fi + +currentWindowId () { + if hash notify-send 2>/dev/null; then #ubuntu! + xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' + elif 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 + fi +} + +bgnotify () { + if hash notify-send 2>/dev/null; then #ubuntu! + notify-send $1 $2 + elif hash terminal-notifier 2>/dev/null; then #osx + terminal-notifier -message $2 -title $1 + elif hash growlnotify 2>/dev/null; then #osx growl + growlnotify -m $1 $2 + 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! +} + +add-zsh-hook preexec bgnotify_begin +add-zsh-hook precmd bgnotify_end From 0b0cc2cdea1e3b3e4af78d8d4a9992be468031eb Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Thu, 6 Nov 2014 10:31:27 -0800 Subject: [PATCH 013/122] Fixed math on linux, removed debug echo. --- plugins/bgnotify/bgnotify.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index f204d9dc8..b5fb76f7e 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -13,7 +13,6 @@ autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } ## definitions ## if ! (type notify_formatted | grep -q 'function'); then - echo "using default notify_formatted" function bgnotify_formatted { ## exit_status, command, elapsed_time [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" @@ -50,8 +49,8 @@ bgnotify_begin() { bgnotify_end() { didexit=$? - elapsed=$(( $EPOCHSECONDS - $bgnotify_timestamp )) - past_threshold=$(( $elapsed >= $bgnotify_threshold )) + elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) + past_threshold=$(( elapsed >= bgnotify_threshold )) if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then if [ $(currentWindowId) != "$bgnotify_windowid" ]; then print -n "\a" From adafe271f02ab767c29f80f5657f448d593cdaf6 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Thu, 6 Nov 2014 10:32:29 -0800 Subject: [PATCH 014/122] add cygwin windows support with notifu, add to readme --- plugins/bgnotify/README.md | 2 +- plugins/bgnotify/bgnotify.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index bf4b1fd09..68fa7529e 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -13,6 +13,7 @@ Just add bgnotify to your plugins list in your `.zshrc` - On OS X you'll need [terminal-notifer](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](http://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package ## Configuration @@ -36,4 +37,3 @@ function bgnotify_formatted { plugins=(git bgnotify) ## add to plugins list source $ZSH/oh-my-zsh.sh ## existing source call ~~~ - diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index b5fb76f7e..42129bd06 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -35,6 +35,8 @@ bgnotify () { terminal-notifier -message $2 -title $1 elif hash growlnotify 2>/dev/null; then #osx growl growlnotify -m $1 $2 + elif hash notifu 2>/dev/null; then #cygwyn support! + notifu /m "$2" /p "$1" fi } From 3d376bbd5b0a230e9e1a2d5497623d92ec94615e Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Fri, 7 Nov 2014 08:35:31 -0800 Subject: [PATCH 015/122] Fix renamed method issue. --- plugins/bgnotify/bgnotify.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 42129bd06..722213734 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -12,7 +12,7 @@ autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } ## definitions ## -if ! (type notify_formatted | grep -q 'function'); then +if ! (type bgnotify_formatted | grep -q 'function'); then function bgnotify_formatted { ## exit_status, command, elapsed_time [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" From cbec1d77b2b238eadcdad5d926339d4a034240e9 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Fri, 7 Nov 2014 10:57:02 -0800 Subject: [PATCH 016/122] Add window ID fallback for windows. - maybe someday use GetForegroundWindow() from User32.lib ... --- plugins/bgnotify/bgnotify.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 722213734..f3cf0e3b8 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -25,6 +25,8 @@ currentWindowId () { xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' elif 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 + else + echo $EPOCHSECONDS #fallback for windows fi } From 98fc8dd91adb5e8754b857127c4d121871d5fadb Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Sat, 8 Nov 2014 14:16:56 -0800 Subject: [PATCH 017/122] Fix for OS X when no window id is returned (like on the desktop) --- plugins/bgnotify/bgnotify.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index f3cf0e3b8..259d27424 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -24,7 +24,7 @@ currentWindowId () { if hash notify-send 2>/dev/null; then #ubuntu! xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' elif 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 + osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0" else echo $EPOCHSECONDS #fallback for windows fi From fd69c34e0ccb8b7754b05e6f0c797abddb00f920 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Sat, 8 Nov 2014 14:20:37 -0800 Subject: [PATCH 018/122] Add screenshots to readme --- plugins/bgnotify/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 68fa7529e..b154916d6 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -16,6 +16,21 @@ Just add bgnotify to your plugins list in your `.zshrc` - On windows you can use [notifu](http://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: From c6a8b2ea6d80e33716ce5590f4c4aff96776f06e Mon Sep 17 00:00:00 2001 From: mizabrik Date: Fri, 28 Nov 2014 19:40:56 +0300 Subject: [PATCH 019/122] Save ZSH path in newly created .zshrc --- tools/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index a53ac48ab..35548005a 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -23,8 +23,8 @@ fi echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" cp $ZSH/templates/zshrc.zsh-template ~/.zshrc -sed -i -e "/^ZSH=/ c\\ -ZSH=$ZSH +sed -i -e "/^export ZSH=/ c\\ +export ZSH=$ZSH " ~/.zshrc echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m" From 6f70d288cc4625142413227109bf1eeac7e2a180 Mon Sep 17 00:00:00 2001 From: zghember Date: Thu, 11 Dec 2014 19:47:29 +0800 Subject: [PATCH 020/122] Update theme "jispwoso" to support ret status and git --- themes/jispwoso.zsh-theme | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/themes/jispwoso.zsh-theme b/themes/jispwoso.zsh-theme index cdfef3871..748430573 100644 --- a/themes/jispwoso.zsh-theme +++ b/themes/jispwoso.zsh-theme @@ -1,4 +1,10 @@ -PROMPT=$'%{$fg[green]%}%n@%m: %{$reset_color%}%{$fg[blue]%}%/%{$reset_color%} -%{$fg_bold[red]%}➜ %{$reset_color%} ' +local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" +PROMPT=$'%{$fg[green]%}%n@%m: %{$reset_color%}%{$fg[blue]%}%/ %{$reset_color%}%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%} +${ret_status} %{$reset_color%} ' PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" From 957564ab9f515dd3565689c9974119310a08f4bc Mon Sep 17 00:00:00 2001 From: liuxiang Date: Sat, 27 Dec 2014 23:56:57 +0800 Subject: [PATCH 021/122] Add completion for httpie --- plugins/httpie/httpie.plugin.zsh | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 plugins/httpie/httpie.plugin.zsh diff --git a/plugins/httpie/httpie.plugin.zsh b/plugins/httpie/httpie.plugin.zsh new file mode 100644 index 000000000..68ead6c67 --- /dev/null +++ b/plugins/httpie/httpie.plugin.zsh @@ -0,0 +1,33 @@ +function _httpie_completion() { + _arguments -C \ + '(- 1 *)--version[display version information]' \ + '(-j|--json)'{-j,--json}'[(default) Data items from the command line are serialized as a JSON object]' \ + '(-f|--form)'{-f,--form}'[Data items from the command line are serialized as form fields]' \ + '(--pretty)--pretty[ Controls output processing]:options' \ + '(-s|--style)'{-s,--style}'[Output coloring style]' \ + '(-p|--print)'{-p,--print}'[String specifying what the output should contain: H(request headers), B(request body), h(response headers), b(response body)]' \ + '(-v|--verbose)'{-v,--verbose}'[Print the whole request as well as the response. Shortcut for --print=HBbh.]' \ + '(-h|--headers)'{-h,--headers}'[Print only the response headers. Shortcut for --print=h]' \ + '(-b|--body)'{-b,--body}'[Print only the response body. Shortcut for --print=b]' \ + '(-S|--stream)'{-S,--stream}'[Always stream the output by line, i.e., behave like `tail -f'"'"']' \ + '(-o|--output)'{-o,--output}'[Save output to FILE]:file:_files' \ + '(-d|--download)'{-d,--download}'[Do not print the response body to stdout. Rather, download it and store it in a file. The filename is guessed unless specified with --output filename. This action is similar to the default behaviour of wget.]' \ + '(-c|--continue)'{-c,--continue}'[Resume an interrupted download. Note that the --output option needs to be specified as well.]' \ + '(--session)--session[Create, or reuse and update a session. Within a session, custom headers, auth credential, as well as any cookies sent by the server persist between requests]:file:_files' \ + '(--session-read-only)--session-read-only[Create or read a session without updating it form the request/response exchange]:file:_files' \ + '(-a|--auth)'{-a,--auth}'[ If only the username is provided (-a username), HTTPie will prompt for the password]' \ + '(--auth-type)--auth-type[ The authentication mechanism to be used. Defaults to "basic".]' \ + '(--proxy)--proxy[ String mapping protocol to the URL of the proxy]' \ + '(--follow)--follow[Set this flag if full redirects are allowed (e.g. re-POST-ing of data at new Location).]' \ + '(--verify)--verify[ Set to "no" to skip checking the host'"'"'s SSL certificate. You can also pass the path to a CA_BUNDLE file for private certs. You can also set the REQUESTS_CA_BUNDLE environment variable. Defaults to "yes".]' \ + '(--timeout)--timeout[ The connection timeout of the request in seconds. The default value is 30 seconds]' \ + '(--check-status)--check-status[By default, HTTPie exits with 0 when no network or other fatal errors occur. This flag instructs HTTPie to also check the HTTP status code and exit with an error if the status indicates one.]' \ + '(--ignore-stdin)--ignore-stdin[Do not attempt to read stdin]' \ + '(--help)--help[Show this help message and exit]' \ + '(--traceback)--traceback[Prints exception traceback should one occur]' \ + '(--debug)--debug[Prints exception traceback should one occur, and also other information that is useful for debugging HTTPie itself and for reporting bugs]' \ + '1: :->cmds' \ + '*: :->args' && ret=0 +} + +compdef _httpie_completion http \ No newline at end of file From 8790fa3723afb15dcac56e9fc71b4a84cd6c9a1f Mon Sep 17 00:00:00 2001 From: rexk Date: Tue, 30 Dec 2014 14:52:14 -0800 Subject: [PATCH 022/122] go plugin upgrade for version 1.4 --- plugins/golang/golang.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index f2be6ca9c..900fc630d 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -23,6 +23,7 @@ __go_tool_complete() { 'env[print Go environment information]' 'fix[run go tool fix on packages]' 'fmt[run gofmt on package sources]' + 'generate[generate Go files by processing source]' 'get[download and install packages and dependencies]' 'help[display help]' 'install[compile and install packages and dependencies]' From 833e6f5958b9851d2dbcf8ae706474af4079a25e Mon Sep 17 00:00:00 2001 From: Jyrki Pulliainen Date: Wed, 7 Jan 2015 18:15:00 +0100 Subject: [PATCH 023/122] virtualenvwrapper: Deactivate only if in virtualenv If user manually deactivates the virtualenv when using this mode, zsh will produce following error: deactivate:12: command not found: virtualenv_deactivate To avoid this, check that the VIRTUAL_ENV flag is set before trying to automatically deactivate the virtual environment. Fixes #2185 --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 52e02d3e0..217ab0722 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -38,7 +38,7 @@ if (( $+commands[$virtualenvwrapper] )); then source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" fi fi - elif [ $CD_VIRTUAL_ENV ]; then + elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then # We've just left the repo, deactivate the environment # Note: this only happens if the virtualenv was activated automatically deactivate && unset CD_VIRTUAL_ENV From a55a313328e7437e1ff9fcdc659e247c61a438f0 Mon Sep 17 00:00:00 2001 From: Dzianis Dashkevich Date: Fri, 9 Jan 2015 16:40:03 +0300 Subject: [PATCH 024/122] Add rdms alias to rails plugin --- plugins/rails/rails.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 824658e44..5ed96f8cd 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -45,6 +45,7 @@ alias rsd='rails server --debugger' # Rake aliases alias rdm='rake db:migrate' +alias rdms='rake db:migrate:status' alias rdr='rake db:rollback' alias rdc='rake db:create' alias rds='rake db:seed' From f997ed7ed8028e400216cfac9bee64b53017e588 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 10 Jan 2015 15:38:49 +0100 Subject: [PATCH 025/122] Add Fedora support for command-not-found plugin --- .../command-not-found.plugin.zsh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index f3d7ec2df..797554a13 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -7,3 +7,19 @@ # Arch Linux command-not-found support, you must have package pkgfile installed # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook [[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh + +# Fedora command-not-found support +if [ -f /usr/libexec/pk-command-not-found ]; then + command_not_found_handler () { + runcnf=1 + retval=127 + [ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0 + [ ! -x /usr/libexec/packagekitd ] && runcnf=0 + if [ $runcnf -eq 1 ] + then + /usr/libexec/pk-command-not-found $@ + retval=$? + fi + return $retval + } +fi From 5b90092555dc13c7577f1cad93857a859be02711 Mon Sep 17 00:00:00 2001 From: CkEsc Date: Sun, 11 Jan 2015 17:52:08 +0300 Subject: [PATCH 026/122] Sublime Text plugin: added sst alias for sudo run sublime --- plugins/sublime/sublime.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 5acc75cc7..38a7596fd 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -12,6 +12,8 @@ if [[ $('uname') == 'Linux' ]]; then for _sublime_path in $_sublime_linux_paths; do if [[ -a $_sublime_path ]]; then st_run() { $_sublime_path $@ >/dev/null 2>&1 &| } + st_run_sudo() {sudo $_sublime_path $@ >/dev/null 2>&1} + alias sst=st_run_sudo alias st=st_run break fi From b2f8764855e14d113bb2cfd1cd788bd7baaae05a Mon Sep 17 00:00:00 2001 From: Harsh Singh Date: Thu, 15 Jan 2015 12:55:32 -0600 Subject: [PATCH 027/122] Adds completions to wp-cli plugin --- plugins/wp-cli/wp-cli.plugin.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/wp-cli/wp-cli.plugin.zsh b/plugins/wp-cli/wp-cli.plugin.zsh index 5d9551e24..71636cff2 100644 --- a/plugins/wp-cli/wp-cli.plugin.zsh +++ b/plugins/wp-cli/wp-cli.plugin.zsh @@ -136,3 +136,25 @@ alias wpwd='wp widget delete' alias wpwl='wp widget list' alias wpwm='wp widget move' alias wpwu='wp widget update' + + +autoload -U +X bashcompinit && bashcompinit +# bash completion for the `wp` command + +_wp_complete() { + local cur=${COMP_WORDS[COMP_CWORD]} + + IFS=$'\n'; # want to preserve spaces at the end + local opts="$(wp cli completions --line="$COMP_LINE" --point="$COMP_POINT")" + + if [[ "$opts" =~ \\s* ]] + then + COMPREPLY=( $(compgen -f -- $cur) ) + elif [[ $opts = "" ]] + then + COMPREPLY=( $(compgen -f -- $cur) ) + else + COMPREPLY=( ${opts[*]} ) + fi +} +complete -o nospace -F _wp_complete wp From fd3a34844f649b2be21fe4e5504a2cf086d1340b Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Tue, 20 Jan 2015 21:24:41 -0500 Subject: [PATCH 028/122] Update git-flow.plugin.zsh --- plugins/git-flow/git-flow.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index b9ea06844..4357c0895 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -5,7 +5,7 @@ # # To achieve git-flow completion nirvana: # -# 0. Update your zsh's git-completion module to the newest verion. +# 0. Update your zsh's git-completion module to the newest version. # From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD # # 1. Install this file. Either: @@ -17,7 +17,7 @@ # # source ~/.git-flow-completion.zsh # -# c. Or, use this file as a oh-my-zsh plugin. +# c. Or, use this file as an oh-my-zsh plugin. # #Alias From 49549d95582832a25957af6daca6621f60c775ac Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Tue, 20 Jan 2015 21:25:07 -0500 Subject: [PATCH 029/122] Update git-hubflow.plugin.zsh --- plugins/git-hubflow/git-hubflow.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git-hubflow/git-hubflow.plugin.zsh b/plugins/git-hubflow/git-hubflow.plugin.zsh index a09f88391..4cf5b9177 100644 --- a/plugins/git-hubflow/git-hubflow.plugin.zsh +++ b/plugins/git-hubflow/git-hubflow.plugin.zsh @@ -5,7 +5,7 @@ # # To achieve git-hubflow completion nirvana: # -# 0. Update your zsh's git-completion module to the newest verion. +# 0. Update your zsh's git-completion module to the newest version. # From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD # # 1. Install this file. Either: @@ -17,7 +17,7 @@ # # source ~/.git-hubflow-completion.zsh # -# c. Or, use this file as a oh-my-zsh plugin. +# c. Or, use this file as an oh-my-zsh plugin. # _git-hf () From 4533c7a31c737622782ce3233d2eb536f9cb4f2e Mon Sep 17 00:00:00 2001 From: Markus Faerevaag Date: Mon, 26 Jan 2015 00:13:39 +0100 Subject: [PATCH 030/122] [wd] Update to v0.4.1 --- plugins/wd/README.md | 14 ++++++++++++-- plugins/wd/_wd.sh | 13 +++++++++++-- plugins/wd/wd.sh | 46 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 65 insertions(+), 8 deletions(-) diff --git a/plugins/wd/README.md b/plugins/wd/README.md index bcfeab684..ed149eb3e 100644 --- a/plugins/wd/README.md +++ b/plugins/wd/README.md @@ -5,6 +5,8 @@ wd `wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems ineffecient when the folder is frequently visited or has a long path. +*NOTE*: If you are not using zsh, check out the `ruby` branch which has `wd` implemented as a gem. + ### Setup @@ -33,7 +35,7 @@ Run either in terminal: * Add `wd` function to `.zshrc` (or `.profile` etc.): wd() { - . ~/paht/to/wd/wd.sh + . ~/path/to/cloned/repo/wd/wd.sh } * Install manpage. From `wd`'s base directory (requires root permissions): @@ -84,7 +86,15 @@ Also, you may have to force a rebuild of `zcompdump` by running: * List all warp points (stored in `~/.warprc`): - $ wd ls + $ wd list + + * List files in given warp point: + + $ wd ls foo + + * Show path of given warp point: + + $ wd path foo * List warp points to current directory, or optionally, path to given warp point: diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh index 2bb58dd31..b67f4a1e2 100644 --- a/plugins/wd/_wd.sh +++ b/plugins/wd/_wd.sh @@ -20,10 +20,13 @@ function _wd() { 'add:Adds the current working directory to your warp points' 'add!:Overwrites existing warp point' 'rm:Removes the given warp point' - 'ls:Outputs all stored warp points' - 'show:Outputs all warp points that point to the current directory or shows a specific target directory for a point' + 'list:Outputs all stored warp points' + 'ls:Show files from given warp point' + 'path:Show path to given warp point' 'show:Outputs all warp points that point to the current directory or shows a specific target directory for a point' 'help:Show this extremely helpful text' + 'clean:Remove points warping to nonexistent directories' + 'clean!:Remove nonexistent directories without confirmation' '..:Go back to last directory' ) @@ -47,6 +50,12 @@ function _wd() { show) _describe -t points "Warp points" warp_points && ret=0 ;; + ls) + _describe -t points "Warp points" warp_points && ret=0 + ;; + path) + _describe -t points "Warp points" warp_points && ret=0 + ;; esac ;; esac diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index 5ecbdc503..3b9548168 100755 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -80,7 +80,9 @@ Commands: rm Removes the given warp point show Print warp points to current directory show Print path to given warp point - ls Print all stored warp points + list Print all stored warp points +ls Show files from given warp point +path Show the path to given warp point clean! Remove points warping to nonexistent directories -v | --version Print version @@ -96,7 +98,7 @@ wd_exit_fail() { local msg=$1 - wd_print_msg $WD_RED $1 + wd_print_msg $WD_RED $msg WD_EXIT_CODE=1 } @@ -108,6 +110,22 @@ wd_exit_warn() WD_EXIT_CODE=1 } +wd_getdir() +{ + local name_arg=$1 + + point=$(wd_show $name_arg) + dir=${point:28+$#name_arg+7} + + if [[ -z $name_arg ]]; then + wd_exit_fail "You must enter a warp point" + break + elif [[ -z $dir ]]; then + wd_exit_fail "Unknown warp point '${name_arg}'" + break + fi +} + # core wd_warp() @@ -201,6 +219,18 @@ wd_list_all() done <<< $(sed "s:${HOME}:~:g" $WD_CONFIG) } +wd_ls() +{ + wd_getdir $1 + ls $dir +} + +wd_path() +{ + wd_getdir $1 + echo $(echo $dir | sed "s:${HOME}:~:g") +} + wd_show() { local name_arg=$1 @@ -316,7 +346,7 @@ do done < $WD_CONFIG # get opts -args=$(getopt -o a:r:c:lhs -l add:,rm:,clean\!,ls,help,show -- $*) +args=$(getopt -o a:r:c:lhs -l add:,rm:,clean\!,list,ls:,path:,help,show -- $*) # check if no arguments were given, and that version is not set if [[ ($? -ne 0 || $#* -eq 0) && -z $wd_print_version ]] @@ -349,10 +379,18 @@ else wd_remove $2 break ;; - -l|--list|ls) + -l|list) wd_list_all break ;; + -ls|ls) + wd_ls $2 + break + ;; + -p|--path|path) + wd_path $2 + break + ;; -h|--help|help) wd_print_usage break From 5f79ab5547f51bd32dcd0a1b21fc26c8720711ba Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Tue, 27 Jan 2015 21:00:07 -0600 Subject: [PATCH 031/122] Move chpwd update output from chpwd hook to precmd to avoid contaminating script/function output --- lib/termsupport.zsh | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index d9f2b64d4..ce36f229f 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -16,12 +16,19 @@ function title { ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" -#Appears when you have the prompt +# Runs when you have the prompt function omz_termsupport_precmd { title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE + + # Notify Terminal.app of current directory using undocumented OSC sequence + # found in OS X 10.9 and 10.10's /etc/bashrc + if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then + local PWD_URL="file://$HOSTNAME${PWD// /%20}" + printf '\e]7;%s\a' "$PWD_URL" + fi } -#Appears at the beginning of (and during) of command execution +# Runs at the beginning of (and during) of command execution function omz_termsupport_preexec { emulate -L zsh setopt extended_glob @@ -33,18 +40,5 @@ function omz_termsupport_preexec { title '$CMD' '%100>...>$LINE%<<' } -#Appears each time pwd is changed -function omz_termsupport_chpwd { - #Notify Terminal.app of current directory using undocumented OSC sequence - #found in OS X 10.10's /etc/bashrc - if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then - local PWD_URL="file://$HOSTNAME${PWD// /%20}" - printf '\e]7;%s\a' "$PWD_URL" - fi -} -#Fire it once so the pwd is set properly upon shell startup -omz_termsupport_chpwd - precmd_functions+=(omz_termsupport_precmd) preexec_functions+=(omz_termsupport_preexec) -chpwd_functions+=(omz_termsupport_chpwd) From c4d3de1ea07b0d53f8b9b011ac5d44e23ac0c747 Mon Sep 17 00:00:00 2001 From: Darius Grigalevicius Date: Wed, 28 Jan 2015 14:02:36 +0200 Subject: [PATCH 032/122] added server:run alias --- plugins/symfony2/symfony2.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 7a19cbdd3..e94280ed0 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -20,6 +20,7 @@ compdef _symfony2 sf #Alias alias sf='`_symfony_console`' alias sfcl='sf cache:clear' +alias sfsr='sf server:run -vvv' alias sfcw='sf cache:warmup' alias sfroute='sf router:debug' alias sfcontainer='sf container:debug' From e60458793ab9703bb65adb6c326f43c6bd5fd126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 17 Dec 2014 11:11:53 +0100 Subject: [PATCH 033/122] Switch newer-than logic to get the desired behavior In the old version, the function returned true (0) if the cache file was newer than the Cakefile, which was *always* unless the Cakefile had been updated. Therefore we generated the file every time unless the Cakefile was updated, which was precisely when we needed to regenerate the cache file. Now it generates the cache file only when the Cakefile has been updated. --- plugins/cake/cake.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index 44cc47470..2370df949 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/plugins/cake/cake.plugin.zsh @@ -15,7 +15,7 @@ _cake_does_target_list_need_generating () { fi [ ! -f ${_cake_task_cache_file} ] && return 0; - [ ${_cake_task_cache_file} -nt Cakefile ] && return 0; + [ Cakefile -nt ${_cake_task_cache_file} ] && return 0; return 1; } From 8ccfc3d444a36905003397083ac5ece46eda2a3b Mon Sep 17 00:00:00 2001 From: Michael Robinson Date: Fri, 9 Jan 2015 08:33:51 +1300 Subject: [PATCH 034/122] Removing 'local' usage to prevent issue when installed with antigen Error encountered when installed with antigen: "chpwd:2: no such file or directory:". Solution described in https://github.com/zsh-users/antigen/issues/75 --- plugins/last-working-dir/last-working-dir.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index e472578b0..4fa6fcc34 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -5,7 +5,7 @@ # Flag indicating if we've previously jumped to last directory. typeset -g ZSH_LAST_WORKING_DIRECTORY mkdir -p $ZSH_CACHE_DIR -local cache_file="$ZSH_CACHE_DIR/last-working-dir" +cache_file="$ZSH_CACHE_DIR/last-working-dir" # Updates the last directory once directory is changed. function chpwd() { From f2130fa1a3f440418a6c48f9bace43ce7443117f Mon Sep 17 00:00:00 2001 From: The Linux Kitten Date: Mon, 2 Feb 2015 20:49:24 +0100 Subject: [PATCH 035/122] Test if --color=auto is a valid option for grep --- lib/grep.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/grep.zsh b/lib/grep.zsh index 348ebe623..3fa103d19 100644 --- a/lib/grep.zsh +++ b/lib/grep.zsh @@ -3,8 +3,12 @@ grep-flag-available() { echo | grep $1 "" >/dev/null 2>&1 } +GREP_OPTIONS="" + # color grep results -GREP_OPTIONS="--color=auto" +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}" From be7028012ecc97bf8976d5de0aed51869720be2a Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Wed, 4 Feb 2015 01:00:51 -0500 Subject: [PATCH 036/122] Reword comments on termsupport internal functions. --- lib/termsupport.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index ce36f229f..bd0cf6ffe 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -16,7 +16,7 @@ function title { ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" -# Runs when you have the prompt +# Runs before showing the prompt function omz_termsupport_precmd { title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE @@ -28,7 +28,7 @@ function omz_termsupport_precmd { fi } -# Runs at the beginning of (and during) of command execution +# Runs before executing the command function omz_termsupport_preexec { emulate -L zsh setopt extended_glob From 8cb97d6f22378940e0238967d08f10ba62a630ce Mon Sep 17 00:00:00 2001 From: Tejas Bubane Date: Wed, 4 Feb 2015 12:24:17 +0530 Subject: [PATCH 037/122] Add alias for git add --all --- plugins/git/git.plugin.zsh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index bf7cd1ac9..bde219dae 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -75,6 +75,7 @@ compdef _git gss=git-status alias ga='git add' compdef _git ga=git-add alias gap='git add --patch' +alias gaa='git add --all' alias gm='git merge' compdef _git gm=git-merge alias grh='git reset HEAD' @@ -174,6 +175,3 @@ alias gignore='git update-index --assume-unchanged' alias gunignore='git update-index --no-assume-unchanged' # list temporarily ignored files alias gignored='git ls-files -v | grep "^[[:lower:]]"' - - - From 431faa924ea2a4176b8b83a75ba856f097e6a089 Mon Sep 17 00:00:00 2001 From: Bilal Budhani Date: Wed, 4 Feb 2015 15:39:34 +0530 Subject: [PATCH 038/122] Creates Ember-cli plugin and Adds its aliases --- plugins/ember-cli/README.md | 22 ++++++++++++++++++++++ plugins/ember-cli/ember-cli.plugin.zsh | 19 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 plugins/ember-cli/README.md create mode 100644 plugins/ember-cli/ember-cli.plugin.zsh diff --git a/plugins/ember-cli/README.md b/plugins/ember-cli/README.md new file mode 100644 index 000000000..d1dedf884 --- /dev/null +++ b/plugins/ember-cli/README.md @@ -0,0 +1,22 @@ +# Ember-cli + +**Maintainer:** [BilalBudhani](http://www.github.com/BilalBudhani) + +Ember-cli (http://www.ember-cli.com/) + +### List of Aliases + +alias es='ember serve' +alias ea='ember addon' +alias eb='ember build' +alias ed='ember destroy' +alias eg='ember generate' +alias eh='ember help' +alias ein='ember init' +alias eia='ember install:addon' +alias eib='ember install:bower' +alias ein='ember install:npm' +alias ei='ember install' +alias et='ember test' +alias eu='ember update' +alias ev='ember version' diff --git a/plugins/ember-cli/ember-cli.plugin.zsh b/plugins/ember-cli/ember-cli.plugin.zsh new file mode 100644 index 000000000..044a2c043 --- /dev/null +++ b/plugins/ember-cli/ember-cli.plugin.zsh @@ -0,0 +1,19 @@ +# Ember ClI +# visit http://www.ember-cli.com/ to view user guid + +alias es='ember serve' +alias ea='ember addon' +alias eb='ember build' +alias ed='ember destroy' +alias eg='ember generate' +alias eh='ember help' +alias ein='ember init' +alias eia='ember install:addon' +alias eib='ember install:bower' +alias ein='ember install:npm' +alias ei='ember install' +alias et='ember test' +alias eu='ember update' + +# version +alias ev='ember version' From 7de44dbdb767e52e509010b1468126259e0b8b87 Mon Sep 17 00:00:00 2001 From: Gabor Marton Date: Wed, 4 Feb 2015 12:56:58 +0100 Subject: [PATCH 039/122] Added trapwinch to vi-mode plugin. --- plugins/vi-mode/vi-mode.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 3ed32b3fb..f2745b409 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -14,6 +14,14 @@ function zle-keymap-select zle-line-init zle-line-finish { zle -R } +# Ensure that the prompt is redrawn when the terminal size changes. +TRAPWINCH() { + if [[ -o zle ]]; then + zle reset-prompt + zle -R + fi +} + zle -N zle-line-init zle -N zle-line-finish zle -N zle-keymap-select From 2e0da6864bc0d770855524ad54eecd4f0cd72829 Mon Sep 17 00:00:00 2001 From: Mathias Geat Date: Fri, 30 Jan 2015 20:31:05 +0100 Subject: [PATCH 040/122] add chucknorris plugin --- plugins/chucknorris/.gitignore | 1 + plugins/chucknorris/LICENSE | 2 + plugins/chucknorris/chucknorris.plugin.zsh | 6 + plugins/chucknorris/fortunes/chucknorris | 904 +++++++++++++++++++++ 4 files changed, 913 insertions(+) create mode 100644 plugins/chucknorris/.gitignore create mode 100644 plugins/chucknorris/LICENSE create mode 100644 plugins/chucknorris/chucknorris.plugin.zsh create mode 100644 plugins/chucknorris/fortunes/chucknorris diff --git a/plugins/chucknorris/.gitignore b/plugins/chucknorris/.gitignore new file mode 100644 index 000000000..267c504a6 --- /dev/null +++ b/plugins/chucknorris/.gitignore @@ -0,0 +1 @@ +fortunes/chucknorris.dat diff --git a/plugins/chucknorris/LICENSE b/plugins/chucknorris/LICENSE new file mode 100644 index 000000000..5f40edd1e --- /dev/null +++ b/plugins/chucknorris/LICENSE @@ -0,0 +1,2 @@ +License: GPL v2 +Thanks to http://www.k-lug.org/~kessler/projects.html for the fortune file. diff --git a/plugins/chucknorris/chucknorris.plugin.zsh b/plugins/chucknorris/chucknorris.plugin.zsh new file mode 100644 index 000000000..096364633 --- /dev/null +++ b/plugins/chucknorris/chucknorris.plugin.zsh @@ -0,0 +1,6 @@ +if [ ! -f $ZSH/plugins/chucknorris/fortunes/chucknorris.dat ]; then + strfile $ZSH/plugins/chucknorris/fortunes/chucknorris $ZSH/plugins/chucknorris/fortunes/chucknorris.dat +fi + +alias chuck="fortune -a $ZSH/plugins/chucknorris/fortunes" +alias chuck_cow="chuck | cowthink" diff --git a/plugins/chucknorris/fortunes/chucknorris b/plugins/chucknorris/fortunes/chucknorris new file mode 100644 index 000000000..b8edf9ac3 --- /dev/null +++ b/plugins/chucknorris/fortunes/chucknorris @@ -0,0 +1,904 @@ +Chuck Norris' tears cure cancer. Too bad he has never cried. Ever. +% +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. +% +The chief export of Chuck Norris is pain. +% +If you can see Chuck Norris, he can see you. If you can't see Chuck Norris, you may be only seconds away from death. +% +Chuck Norris has counted to infinity. Twice. +% +Chuck Norris does not hunt because the word hunting implies the probability of failure. Chuck Norris goes killing. +% +Chuck Norris' blood type is AK+. Ass-Kicking Positive. It is compatible only with heavy construction equipment, tanks, and fighter jets. +% +Chuck Norris is 1/8th Cherokee. This has nothing to do with ancestry, the man ate a fucking Indian. +% +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 goes to donate blood, he declines the syringe, and instead requests a hand gun and a bucket. +% +There are no steroids in baseball. Just players Chuck Norris has breathed on. +% +Chuck Norris once challenged Lance Armstrong in a "Who has more testicles?" contest. Chuck Norris won by 5. +% +Chuck Norris was the fourth wise man, who gave baby Jesus the gift of beard, which he carried with him until he died. The other three wise men were enraged by the preference that Jesus showed to Chuck's gift, and arranged to have him written out of the bible. All three died soon after of mysterious roundhouse-kick related injuries. +% +Chuck Norris sheds his skin twice a year. +% +When Chuck Norris calls 1-900 numbers, he doesnt get charged. He holds up the phone and money falls out. +% +Chuck Norris once ate a whole cake before his friends could tell him there was a stripper in it. +% +Some people like to eat frogs' legs. Chuck Norris likes to eat lizard legs. Hence, snakes. +% +There are no races, only countries of people Chuck Norris has beaten to different shades of black and blue. +% +When Chuck Norris was denied an Egg McMuffin at McDonald's because it was 10:35, he roundhouse kicked the store so hard it became a Wendy's. +% +Chuck Norris can't finish a "color by numbers" because his markers are filled with the blood of his victims. Unfortunately, all blood is dark red. +% +A Chuck Norris-delivered Roundhouse Kick is the preferred method of execution in 16 states. +% +When Chuck Norris falls in water, Chuck Norris doesn't get wet. Water gets Chuck Norris. +% +Scientists have estimated that the energy given off during the Big Bang is roughly equal to 1CNRhK (Chuck Norris Roundhouse Kick) +% +Chuck Norris' house has no doors, only walls that he walks through. +% +When Chuck Norris has sex with a man, it won't be because he is gay. It will be because he has run out of women. +% +How much wood would a woodchuck chuck if a woodchuck could Chuck Norris? ...All of it. +% +Chuck Norris doesn't actually write books, the words assemble themselves out of fear. +% +In honor of Chuck Norris, all McDonald's in Texas have an even larger size than the super-size. When ordering, just ask to be "Norrisized". +% +Chuck Norris CAN believe it's not butter. +% +If tapped, a Chuck Norris roundhouse kick could power the country of Australia for 44 minutes. +% +Chuck Norris can divide by zero. +% +The grass is always greener on the other side, unless Chuck Norris has been there. In that case the grass is most likely soaked in blood and tears. +% +A picture is worth a thousand words. A Chuck Norris is worth 1 billion words. +% +Newton's Third Law is wrong: Although it states that for each action, there is an equal and opposite reaction, there is no force equal in reaction to a Chuck Norris roundhouse kick. +% +Chuck Norris invented his own type of karate. It's called Chuck-Will-Kill. +% +When an episode of Walker Texas Ranger was aired in France, the French surrendered to Chuck Norris just to be on the safe side. +% +While urinating, Chuck Norris is easily capable of welding titanium. +% +Chuck Norris once sued the Houghton-Mifflin textbook company when it became apparent that their account of the war of 1812 was plagiarized from his autobiography. +% +When Chuck Norris talks, everybody listens. And dies. +% +When Steven Seagal kills a ninja, he only takes its hide. When Chuck Norris kills a ninja, he uses every part. +% +Wilt Chamberlain claims to have slept with more than 20,000 women in his lifetime. Chuck Norris calls this "a slow Tuesday." +% +Contrary to popular belief, there is indeed enough Chuck Norris to go around. +% +Chuck Norris doesnt shave; he kicks himself in the face. The only thing that can cut Chuck Norris is Chuck Norris. +% +For some, the left testicle is larger than the right one. For Chuck Norris, each testicle is larger than the other one. +% +Chuck Norris always knows the EXACT location of Carmen SanDiego. +% +When taking the SAT, write "Chuck Norris" for every answer. You will score over 8000. +% +Chuck Norris invented black. In fact, he invented the entire spectrum of visible light. Except pink. Tom Cruise invented pink. +% +When you're Chuck Norris, anything + anything is equal to 1. One roundhouse kick to the face. +% +Chuck Norris has the greatest Poker-Face of all time. He won the 1983 World Series of Poker, despite holding only a Joker, a Get out of Jail Free Monopoloy card, a 2 of clubs, 7 of spades and a green #4 card from the game UNO. +% +On his birthday, Chuck Norris randomly selects one lucky child to be thrown into the sun. +% +Nobody doesn't like Sara Lee. Except Chuck Norris. +% +Chuck Norris doesn't throw up if he drinks too much. Chuck Norris throws down! +% +In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe. +% +Chuck Norris has 12 moons. One of those moons is the Earth. +% +Chuck Norris grinds his coffee with his teeth and boils the water with his own rage. +% +Archeologists unearthed an old english dictionary dating back to the year 1236. It defined "victim" as "one who has encountered Chuck Norris" +% +Chuck Norris ordered a Big Mac at Burger King, and got one. +% +Chuck Norris and Mr. T walked into a bar. The bar was instantly destroyed, as that level of awesome cannot be contained in one building. +% +If you Google search "Chuck Norris getting his ass kicked" you will generate zero results. It just doesn't happen. +% +Chuck Norris can drink an entire gallon of milk in thirty-seven seconds. +% +Little known medical fact: Chuck Norris invented the Caesarean section when he roundhouse-kicked his way out of his monther's womb. +% +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. +% +It takes Chuck Norris 20 minutes to watch 60 Minutes. +% +You know how they say if you die in your dream then you will die in real life? In actuality, if you dream of death then Chuck Norris will find you and kill you. +% +Chuck Norris has a deep and abiding respect for human life... unless it gets in his way. +% +The Bermuda Triangle used to be the Bermuda Square, until Chuck Norris Roundhouse kicked one of the corners off. +% +There are no weapons of mass destruction in Iraq, Chuck Norris lives in Oklahoma. +% +Chuck Norris doesn't believe in Germany. +% +When Chuck Norris is in a crowded area, he doesn't walk around people. He walks through them. +% +Chuck Norris once ate an entire bottle of sleeping pills. They made him blink. +% +James Cameron wanted Chuck Norris to play the Terminator. However, upon reflection, he realized that would have turned his movie into a documentary, so he went with Arnold Schwarzenegger. +% +Chuck Norris can touch MC Hammer. +% +Thousands of years ago Chuck Norris came across a bear. It was so terrified that it fled north into the arctic. It was also so terrified that all of its decendents now have white hair. +% +Chuck Norris played Russian Roulette with a fully loaded gun and won. +% +It takes 14 puppeteers to make Chuck Norris smile, but only 2 to make him destroy an orphanage. +% +Chuck Norris is responsible for China's over-population. He hosted a Karate tournament in Beijing and all women within 1,000 miles became pregnant instantly. +% +Some people wear Superman pajamas. Superman wears Chuck Norris pajamas. +% +Chuck Norris once worked as a weatherman for the San Diego evening news. Every night he would make the same forecast: Partly cloudy with a 75% chance of Pain. +% +Simply by pulling on both ends, Chuck Norris can stretch diamonds back into coal. +% +When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down. +% +Chuck Norris invented the bolt-action rifle, liquor, sexual intercourse, and football-- in that order. +% +A high tide means Chuck Norris is flying over your coast. The tide is caused by God pissing his pants. +% +Chuck Norris keeps his friends close and his enemies closer. Close enough to drop them with one round house kick to the face. +% +There is in fact an "I" in Norris, but there is no "team"? not even close. +% +Scotty in Star Trek often says "Ye cannae change the laws of physics." This is untrue. Chuck Norris can change the laws of physics. With his fists. +% +An anagram for Walker Texas Ranger is KARATE WRANGLER SEX. I don't know what that is, but it sounds AWESOME. +% +Chuck Norris doesn't stub his toes. He accidentally destroys chairs, bedframes, and sidewalks. +% +Using his trademark roundhouse kick, Chuck Norris once made a fieldgoal in RJ Stadium in Tampa Bay from the 50 yard line of Qualcomm stadium in San Diego. +% +Chuck Norris roundhouse kicks don't really kill people. They wipe out their entire existence from the space-time continuum. +% +Chuck Norris does not own a stove, oven, or microwave , because revenge is a dish best served cold. +% +Tom Clancy has to pay royalties to Chuck Norris because "The Sum of All Fears" is the name of Chuck Norris' autobiography. +% +Chuck Norris can slam a revolving door. +% +Chuck Norris is expected to win gold in every swimming competition at the 2008 Beijing Olympics, even though Chuck Norris does not swim. This is because when Chuck Norris enters the water, the water gets out of his way and Chuck Norris simply walks across the pool floor. +% +Chuck Norris built a better mousetrap, but the world was too frightened to beat a path to his door. +% +The original draft of The Lord of the Rings featured Chuck Norris instead of Frodo Baggins. It was only 5 pages long, as Chuck roundhouse-kicked Sauron's ass halfway through the first chapter. +% +Hellen Keller's favorite color is Chuck Norris. +% +Chuck Norris eats beef jerky and craps gunpowder. Then, he uses that gunpowder to make a bullet, which he uses to kill a cow and make more beef jerky. Some people refer to this as the "Circle of Life." +% +If, by some incredible space-time paradox, Chuck Norris would ever fight himself, he'd win. Period. +% +Chuck Norris is currently suing myspace for taking the name of what he calls everything around you. +% +The crossing lights in Chuck Norris's home town say "Die slowly" and "die quickly". They each have a picture of Chuck Norris punching or kicking a pedestrian. +% +Science Fact: Roundhouse kicks are comprised primarily of an element called Chucktanium. +% +The Sherman tank was originaly called the Norris tank until Chuck Norris decided it wasn't tough enough to be associated with him. The Army, for fear of Chuck Norris, renamed the tank and promised to develop a weapon more fitting of his name. To date, no weapon created has been badass enough to be named after Chuck Norris. +% +Chuck Norris proved that we are alone in the universe. We weren't before his first space expedition. +% +Superman once watched an episode of Walker, Texas Ranger. He then cried himself to sleep. +% +Chuck Norris doesn't step on toes. Chuck Norris steps on necks. +% +The movie "Delta Force" was extremely hard to make because Chuck had to downplay his abilities. The first few cuts were completely unbelievable. +% +Movie trivia: The movie "Invasion U.S.A." is, in fact, a documentary. +% +Chuck Norris does not "style" his hair. It lays perfectly in place out of sheer terror. +% +There is no such thing as global warming. Chuck Norris was cold, so he turned the sun up. +% +A study showed the leading causes of death in the United States are: +1:Heart disease +2:Chuck Norris +3:Cancer +% +It's widely believed that Jesus was Chuck Norris' stunt double for crucifixion due to the fact that it is impossible for nails to pierce Chuck Norris' skin. +% +Chuck Norris did in fact, build Rome in a day. +% +Along with his black belt, Chuck Norris often chooses to wear brown shoes. No one has DARED call him on it. Ever. +% +Anytime someone is elected president in the United States, they must ask permission from Chuck Norris to live in the White House. The reason for this is because Chuck Norris had won every Federal, State, and Local election since 1777. He just allows others to run the country in his place. +% +Once you go Norris, you are physically unable to go back. +% +Ninjas want to grow up to be just like Chuck Norris. But usually they grow up just to be killed by Chuck Norris. +% +Chuck Norris once sued Burger King after they refused to put razor wire in his Whopper Jr, insisting that that actually is "his" way. +% +The last thing you hear before Chuck Norris gives you a roundhouse kick? No one knows because dead men tell no tales. +% +Chuck Norris doesn't play god. Playing is for children. +% +As a teen, Chuck Norris had sex with every nun in a convent tucked away in the hills of Tuscany. Nine months later the nuns gave birth to the 1972 Miami Dolphins, the only undefeated and untied team in professional football history. +% +Chuck Norris is the only person in the world that can actually email a roundhouse kick. +% +Chuck Norris won super bowls VII and VIII singlehandedly before unexpectedly retiring to pursue a career in ass-kicking. +% +Wo hu cang long. The translation from Mandarin Chinese reads: "Crouching Chuck, Hidden Norris" +% +Chuck Norris can set ants on fire with a magnifying glass. At night. +% +Some kids play Kick the can. Chuck Norris played Kick the keg. +% +'Icy-Hot' is too weak for Chuck Norris. After a workout, Chuck Norris rubs his muscles down with liquid-hot MAGMA. +% +Chuck Norris cannot love, he can only not kill. +% +When Chuck Norris was a baby, he didn't suck his mother's breast. His mother served him whiskey, straight out of the bottle. +% +According to Einstein's theory of relativity, Chuck Norris can actually roundhouse kick you yesterday. +% +Chuck Norris once pulled out a single hair from his beard and skewered three men through the heart with it. +% +In an act of great philanthropy, Chuck made a generous donation to the American Cancer Society. He donated 6,000 dead bodies for scientific research. +% +Chuck Norris' favourite cut of meat is the roundhouse. +% +When J. Robert Oppenheimer said "I am become death, the destroyer Of worlds", He was not referring to the atomic bomb. He was referring to the Chuck Norris halloween costume he was wearing. +% +Chuck Norris recently had the idea to sell his urine as a canned beverage. We know this beverage as Red Bull. +% +In a recent survey it was discovered the 94% of American women lost their virginity to Chuck Norris. The other 6% were incredibly fat or ugly. +% +Chuck Norris invented a language that incorporates karate and roundhouse kicks. So next time Chuck Norris is kicking your ass, don't be offended or hurt, he may be just trying to tell you he likes your hat. +% +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. +% +Fear is not the only emotion Chuck Norris can smell. He can also detect hope, as in "I hope I don't get a roundhouse kick from Chuck Norris." +Too late, asshole. +% +Chuck Norris's show is called Walker: Texas Ranger, because Chuck Norris doesn't run. +% +MacGyver can build an airplane out of gum and paper clips, but Chuck Norris can roundhouse-kick his head through a wall and take it. +% +Behind every successful man, there is a woman. Behind every dead man, there is Chuck Norris. +% +What's known as the UFC, or Ultimate Fighting Championship, doesn't use its full name, which happens to be "Ultimate Fighting Championship, Non-Chuck-Norris-Division". +% +Chuck Norris brushes his teeth with a mixture of iron shavings, industrial paint remover, and wood-grain alcohol. +% +The easiest way to determine Chuck Norris' age is to cut him in half and count the rings. +% +There is endless debate about the existence of the human soul. Well it does exist, and Chuck Norris finds it delicious. +% +Most boots are made for walkin'. Chuck Norris' boots ain't that merciful. +% +The US did not boycott the 1980 Summer Olympics in Moscow due to political reasons: Chuck Norris killed the entire US team with a single round-house kick during TaeKwonDo practice. +% +Chuck Norris wears a live rattlesnake as a condom. +% +When the movie Pulp Fiction was filmed they had to borrow Chuck Norris's wallet... It's the one that says "Bad Mother Fucker" on it +% +The Bible was originally titled "Chuck Norris and Friends" +% +Chuck Norris began selling the Total Gym as an ill-fated attempt to make his day-to-day opponents less laughably pathetic. +% +Do you know why Baskin Robbins only has 31 flavors? Because Chuck Norris doesn't like Fudge Ripple. +% +When Chuck Norris says "More cowbell", he fucking MEANS it. +% +On the set of Walker Texas Ranger Chuck Norris brought a dying lamb back to life by nuzzling it with his beard. As the onlookers gathered, the lamb sprang to life. Chuck Norris then roundhouse kicked it, killing it instantly. This was just to prove that the good Chuck giveth, and the good Chuck, he taketh away. +% +Chuck Norris was what Willis was talkin' about. +% +Google won't search for Chuck Norris because it knows you don't find Chuck Norris, he finds you. +% +Chuck Norris can lead a horse to water AND make it drink. +% +Nagasaki never had a bomb dropped on it. Chuck Norris jumped out of a plane and punched the ground. +% +It is scientifically impossible for Chuck Norris to have had a mortal father. The most popular theory is that he went back in time and fathered himself. +% +Chuck Norris destroyed the periodic table, because Chuck Norris only recognizes the element of surprise. +% +It is believed dinosaurs are extinct due to a giant meteor. That's true if you want to call Chuck Norris a giant meteor. +% +Chuck Norris shot the sheriff, but he round house kicked the deputy. +% +That's not Chuck Norris doing push-ups -- that's Chuck Norris moving the Earth away from the path of a deadly asteroid. +% +Chuck Norris can judge a book by its cover. +% +Nothing can escape the gravity of a black hole, except for Chuck Norris. Chuck Norris eats black holes. They taste like chicken. +% +Chuck Norris does not play the lottery. It doesn't have nearly enough balls. +% +Q: How many Chuck Norris' does it take to change a light bulb? +A: None, Chuck Norris prefers to kill in the dark. +% +As President Roosevelt said: "We have nothing to fear but fear itself. And Chuck Norris." +% +Chuck Norris just says "no" to drugs. If he said "yes", it would collapse Colombia's infrastructure. +% +Since 1940, the year Chuck Norris was born, roundhouse-kick related deaths have increased 13,000 percent. +% +Crime does not pay - unless you are an undertaker following Walker, Texas Ranger, on a routine patrol. +% +Chuck Norris invented the internet? just so he had a place to store his porn. +% +Chuck Norris does not own a house. He walks into random houses and people move. +% +It is better to give than to receive. This is especially true of a Chuck Norris roundhouse kick. +% +Chuck Norris is the only person to ever win a staring contest against Ray Charles and Stevie Wonder at the same time. +% +Industrial logging isn't the cause of deforestation. Chuck Norris needs toothpicks. +% +Chuck Norris smells what the Rock is cooking... because the Rock is Chuck Norris' personal chef. +% +When Chuck Norris plays Oregon Trail, his family does not die from cholera or dysentery, but rather, roundhouse kicks to the face. He also requires no wagon, since he carries the oxen, axels, and buffalo meat on his back. He always makes it to Oregon before you. +% +Chuck Norris is the reason why Waldo is hiding. +% +"Brokeback Mountain" is not just a movie. It's also what Chuck Norris calls the pile of dead ninjas in his front yard. +% +When God said, "let there be light", Chuck Norris said, "say 'please'." +% +Chuck Norris does not eat. Food understands that the only safe haven from Chuck Norris' fists is inside his own body. +% +One day Chuck Norris walked down the street with a massive erection. There were no survivors. +% +Chuck Norris built a time machine and went back in time to stop the JFK assassination. As Oswald shot, Chuck met all three bullets with his beard, deflecting them. JFK's head exploded out of sheer amazement. +% +Chuck Norris doesn't read books. He stares them down until he gets the information he wants. +% +Chuck Norris uses a night light. Not because Chuck Norris is afraid of the dark, but the dark is afraid of Chuck Norris. +% +Chuck Norris is not capable of hitting a target on the broad side of a barn. Every time he tries, the whole damn barn falls down. +% +Before each filming of Walker: Texas Ranger, Chuck Norris is injected with fourteen times the lethal dose of elephant tranquilzer. This is, of course, to limit his strength and mobility, in an attempt to lower the fatality rate of the actors he fights. +% +When Bruce Banner gets mad, he turns into the Hulk. When the Hulk gets mad, he turns into Chuck Norris. +% +Chuck Norris kills anyone that asks, "You want fries with that" because by now everyone should know that Chuck doesn't ever want fries with anything. Ever. +% +Chuck Norris once kicked a horse in the chin. Its decendants are known today as Giraffes. +% +Sticks and stones may break your bones, but a Chuck Norris glare will liquefy your kidneys. +% +Human cloning is outlawed because if Chuck Norris were cloned, then it would be possible for a Chuck Norris roundhouse kick to meet another chuck Norris roundhouse kick. Physicists theorize that this contact would end the universe. +% +Chuck Norris once went skydiving, but promised never to do it again. One Grand Canyon is enough. +% +Chuck Norris's version of a "chocolate milkshake" is a raw porterhouse wrapped around ten Hershey bars, and doused in diesel fuel. +% +If Chuck Norris round-house kicks you, you will die. If Chuck Norris' misses you with the round-house kick, the wind behind the kick will tear out your pancreas. +% +In a fight between Batman and Darth Vader, the winner would be Chuck Norris. +% +Chuck Norris puts his pants on one leg at a time, just like the rest of us. The only difference is, then he fucking kills people. +% +Everybody loves Raymond. Except Chuck Norris. +% +Contrary to popular belief, the Titanic didn't hit an iceberg. The ship was off course and accidentally ran into Chuck Norris while he was doing the backstroke across the Atlantic. +% +Chuck Norris got his drivers license at the age of 16. Seconds. +% +The original title for Alien vs. Predator was Alien and Predator vs Chuck Norris. The film was cancelled shortly after going into preproduction. No one would pay nine dollars to see a movie fourteen seconds long. +% +Chuck Norris' sperm is so badass, he had sex with Nicole Kidman, and 7 months later she prematurely gave birth to a Ford Excursion. +% +Chuck Norris can win at solitaire with only 18 cards. +% +Chuck Norris once shat blood - the blood of 11,940 natives he had killed and eaten. +% +Maslow's theory of higher needs does not apply to Chuck Norris. He only has two needs: killing people and finding people to kill. +% +The truth will set you free. Unless Chuck Norris has you, in which case, forget it buddy! +% +For most people, home is where the heart is. For Chuck Norris, home is where he stores his collection of human skulls. +% +Kryptonite has been found to contain trace elements of Chuck Norris roundhouse kicks to the face. This is why it is so deadly to Superman. +% +Saddam Hussein was not found hiding in a "hole." Saddam was roundhouse-kicked in the head by Chuck Norris in Kansas, which sent him through the earth, stopping just short of the surface of Iraq. +% +Coroners refer to dead people as "ABC's". Already Been Chucked. +% +Chuck Norris doesn't look both ways before he crosses the street... he just roundhouses any cars that get too close. +% +Chuck Norris does not have to answer the phone. His beard picks up the incoming electrical impulses and translates them into audible sound. +% +How many roundhouse kicks does it take to get to the center of a tootsie pop? Just one. From Chuck Norris. +% +Chuck Norris doesnt wear a watch, HE decides what time it is. +% +The phrase 'break a leg' was originally coined by Chuck Norris's co-stars in Walker, Texas Ranger as a good luck charm, indicating that a broken leg might be the worst extent of their injuries. This never proved to be the case. +% +When chuck Norris does division, there are no remainders. +% +If you rearrange the letters in "Chuck Norris", they also spell "Crush Rock In". The words "with his fists" are understood. +% +Never look a gift Chuck Norris in the mouth, because he will bite your damn eyes off. +% +Give a man a fish, and you will feed him for a day. Give a man anything that is better than a fish, and Chuck Norris will beat his ass and take it. +% +Chuck Norris used to play baseball. When Babe Ruth was hailed as the better player, Chuck Norris killed him with a baseball bat to the throat. Lou Gehrig got off easy. +% +The original title for Star Wars was "Skywalker: Texas Ranger". Starring Chuck Norris. +% +Guantuanamo Bay, Cuba, is the military code-word for "Chuck Norris' basement". +% +The phrase 'balls to the wall' was originally conceived to describe Chuck Norris entering any building smaller than an aircraft hangar. +% +Chuck Norris' roundhouse kick is so powerful, it can be seen from outer space by the naked eye. +% +Ozzy Osbourne bites the heads off of bats. Chuck Norris bites the heads off of Siberian Tigers. +% +He who lives by the sword, dies by the sword. He who lives by Chuck Norris, dies by the roundhouse kick. +% +The best-laid plans of mice and men often go awry. Even the worst-laid plans of Chuck Norris come off without a hitch. +% +The phrase 'dead ringer' refers to someone who sits behind Chuck Norris in a movie theater and forgets to turn their cell phone off. +% +Chuck Norris' Roundhouse kick is so powerful, that on the set of Sidekicks he single-footedly destroyed Jonathan Brandis' Career. +% +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 can taste lies. +% +Chuck Norris does not kick ass and take names. In fact, Chuck Norris kicks ass and assigns the corpse a number. It is currently recorded to be in the billions. +% +One time, Chuck Norris accidentally stubbed his toe. It destroyed the entire state of Ohio. +% +Little Miss Muffet sat on her tuffet, until Chuck Norris roundhouse kicked her into a glacier. +% +In 1990, Chuck Norris founded the non-profit organization "Kick Drugs Out of America". If the organization's name were "Roundhouse Kick Drugs out of America", there wouldn't be any drugs in the Western Hemisphere. Anywhere. +% +Chuck Norris can blow bubbles with beef jerky. +% +They had to edit the first ending of 'Lone Wolf McQuade' after Chuck Norris kicked David Carradine's ass, then proceeded to barbecue and eat him. +% +Chuck Norris does, in fact, live in a round house. +% +Chuck Norris was once on Jeopardy. This show is notable in that it was the first occasion in Jeopardy history that Alex Trebek had appeared without a mustache. And a head. +% +When Chuck Norris works out on the Total Gym, the Total Gym feels like it's been raped. +% +4 out of 5 doctors fail to recommend Chuck Norris as a solution to most problems. Also, 80% of doctors die unexplained, needlessly brutal deaths. +% +Chuck Norris can skeletize a cow in two minutes. +% +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. +% +With the rising cost of gasoline, Chuck Norris is beginning to worry about his drinking habit. +% +The square root of Chuck Norris is pain. Do not try to square Chuck Norris, the result is death. +% +Chuck Norris' testicles do not produce sperm. They produce tiny white ninjas that recognize only one mission: seek and destroy. +% +To be or not to be? That is the question. The answer? Chuck Norris. +% +Chuck Norris has never been in a fight, ever. Do you call one roundhouse kick to the face a fight? +% +There are two types of people in the world... people that suck, and Chuck Norris. +% +Chuck Norris never wet his bed as a child. The bed wet itself out of fear. +% +If you were somehow able to land a punch on Chuck Norris your entire arm would shatter upon impact. This is only in theory, since, come on, who in their right mind would try this? +% +70% of a human's weight is water. 70% of Chuck Norris' weight is his dick. +% +Jean-Claude Van Damme once kicked Chuck Norris' ass. He was then awakened from his dream by a roundhouse kick to the face. +% +The pie scene in "American Pie" is based on a dare Chuck Norris took when he was younger. However, in Chuck Norris' case, the "pie" was the molten crater of an active volcano. +% +Chuck Norris uses 8'x10' sheets of plywood as toilet paper. +% +Noah was the only man notified before Chuck Norris relieved himself in the Atlantic Ocean. +% +Chuck Norris once invited all of the other badasses from TV to duke it out in order to see who was the supreme badass. Only two showed up-- Jack Bauer and MacGyver. +% + +% +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. +% +Jack Bauer tried to use his detailed knowledge of torture techniques, but to no avail: Chuck Norris thrives on pain. Chuck Norris then ripped off Jack Bauer's arm and beat him to death with it. Game, set, match. +% +Chuck Norris eats steak for every single meal. Most times he forgets to kill the cow. +% +The First Law of Thermodynamics states that energy can neither be created nor destroyed... unless it meets Chuck Norris. +% +Chuck Norris doesn't go on the internet, he has every internet site stored in his memory. He refreshes webpages by blinking. +% +Fact: Chuck Norris doesn't consider it sex if the woman survives. +% +It is said that looking into Chuck Norris' eyes will reveal your future. Unfortunately, everybody's future is always the same: death by a roundhouse-kick to the face. +% +Chuck Norris knows everything there is to know - Except for the definition of mercy. +% +Scientifically speaking, it is impossible to charge Chuck Norris with "obstruction of justice." This is because even Chuck Norris cannot be in two places at the same time. +% +Chuck Norris never has to wax his skis because they're always slick with blood. +% +When you say "no one's perfect", Chuck Norris takes this as a personal insult. +% +Chuck Norris can win a game of Trivial Pursuit with one roll of the dice, and without answering a single question... just a nod of the head, and a stroke of the beard. +% +182,000 Americans die from Chuck Norris-related accidents every year. +% +Paper beats rock, rock beats scissors, and scissors beats paper, but Chuck Norris beats all 3 at the same time. +% +Jesus can walk on water, but Chuck Norris can walk on Jesus. +% +All roads lead to Chuck Norris. And by the transitive property, a roundhouse kick to the face. +% +If you're driving down the road and you think Chuck Norris just cut you off, you better thank your lucky stars it wasn't the other way around. +% +July 4th is Independence day. And the day Chuck Norris was born. Coincidence? i think not. +% +Chuck Norris never goes to the dentist because his teeth are unbreakable. His enemies never go to the dentist because they have no teeth. +% +In the medical community, death is referred to as "Chuck Norris Disease" +% +Chuck Norris was once in a knife fight, and the knife lost. +% +If you work in an office with Chuck Norris, don't ask him for his three-hole-punch. +% +In the Words of Julius Caesar, "Veni, Vidi, Vici, Chuck Norris". Translation: I came, I saw, and I was roundhouse-kicked inthe face by Chuck Norris. +% +The First rule of Chuck Norris is: you do not talk about Chuck Norris. +% +Chuck Norris is widely predicted to be first black president. If you're thinking to yourself, "But Chuck Norris isn't black", then you are dead wrong. And stop being a racist. +% +When Chuck Norris plays Monopoly, it affects the actual world economy. +% +Chuck Norris can be unlocked on the hardest level of Tekken. But only Chuck Norris is skilled enough to unlock himself. Then he roundhouse kicks the Playstation back to Japan. +% +Chuck Norris drinks napalm to quell his heartburn. +% +Every time someone uses the word "intense", Chuck Norris always replies "you know what else is intense?" followed by a roundhouse kick to the face. +% +As an infant, Chuck Norris' parents gave him a toy hammer. He gave the world Stonehenge. +% +Chuck Norris once ordered a steak in a restaurant. The steak did what it was told. +% +Most people fear the Reaper. Chuck Norris considers him "a promising Rookie". +% +There are only two things that can cut diamonds: other diamonds, and Chuck Norris. +% +President Roosevelt once rode his horse 100 miles. Chuck Norris carried his the same distance in half the time. +% +Chuck Norris once ate four 30lb bowling balls without chewing. +% +What many people dont know is chuck norris is the founder of planned parenthood. Not even unborn children can escape his wrath. +% +Chuck Norris was banned from competitive bullriding after a 1992 exhibition in San Antonio, when he rode the bull 1,346 miles from Texas to Milwaukee Wisconsin to pick up his dry cleaning. +% +Chuck Norris qualified with a top speed of 324 mph at the Daytona 500, without a car. +% +Chuck Norris likes his coffee half and half: half coffee grounds, half wood-grain alcohol. +% +Chuck Norris uses tabasco sauce instead of visine. +% +The chemical formula for the highly toxic cyanide ion is CN-. These are also Chuck Norris' initials. This is not a coincidence. +% +Chuck Norris' credit cards have no limit. Last weekend, he maxed them out. +% +Think of a hot woman. Chuck Norris did her. +% +A man once claimed Chuck Norris kicked his ass twice, but it was promptly dismissed as false - no one could survive it the first time. +% +Chuck Norris sleeps with a pillow under his gun. +% +Chuck Norris owns a chain of fast-food restaurants throughout the southwest. They serve nothing but barbecue-flavored ice cream and Hot Pockets. +% +Chuck Norris doesn't chew gum. Chuck Norris chews tin foil. +% +Aliens DO indeed exist. They just know better than to visit a planet that Chuck Norris is on. +% +When in a bar, you can order a drink called a "Chuck Norris". It is also known as a "Bloody Mary", if your name happens to be Mary. +% +Every time Chuck Norris smiles, someone dies. Unless he smiles while he's roundhouse kicking someone in the face. Then two people die. +% +Some people ask for a Kleenex when they sneeze, Chuck Norris asks for a body bag. +% +There's an order to the universe: space, time, Chuck Norris.... Just kidding, Chuck Norris is first. +% +A man once asked Chuck Norris if his real name is "Charles". Chuck Norris did not respond, he simply stared at him until he exploded. +% +Chuck Norris starts everyday with a protein shake made from Carnation Instant Breakfast, one dozen eggs, pure Colombian cocaine, and rattlesnake venom. He injects it directly into his neck with a syringe. +% +In a tagteam match, Chuck Norris was teamed with Hulk Hogan against King Kong Bundy and Andre The Giant. He pinned all 3 at the same time. +% +Chuck Norris doesn't see dead people. He makes people dead. +% +Chuck Norris is the only person who can simultaneously hold and fire FIVE Uzis: One in each hand, one in each foot -- and the 5th one he roundhouse-kicks into the air, so that it sprays bullets. +% +For undercover police work, Chuck Norris pins his badge underneath his shirt, directly into his chest. +% +In the X-Men movies, none of the X-Men super-powers are done with special effects. Chuck Norris is the stuntman for every character. +% +We live in an expanding universe. All of it is trying to get away from Chuck Norris. +% +Chuck Norris went looking for a bar but couldn't find one. He walked to a vacant lot and sat there. Sure enough within an hour an a half someone constructed a bar around him. He then ordered a shot, drank it, and then burned the place to the ground. Chuck Norris yelled over the roar of the flames, "always leave things the way you found em!" +% +It is said that every time you masturbate, God kills a kitten. Every time God masturbates, Chuck Norris kills a lion. +% +The word 'Kill' was invented by Chuck Norris. Other words were 'Die', 'Beer', and 'What'. +% +Chuck Norris is a vegetarian. Meaning, he does not eat animals until first he puts them into vegetative state with his fists. +% +The 11th commandment is "Thou shalt not piss off Chuck Norris" This commandment is rarely enforced, as it is impossible to accomplish. +% +Chuck Norris is his own line at the DMV. +% +Two wrongs don't make a right. Unless you're Chuck Norris. Then two wrongs make a roundhouse kick to the face. +% +Who let the dogs out? Chuck Norris let the dogs out... and then roundhouse kicked them through an Oldsmobile. +% +Chuck Norris can do a roundhouse kick faster than the speed of light. This means that if you turn on a light switch, you will be dead before the lightbulb turns on. +% +When Chuck Norris goes to out to eat, he orders a whole chicken, but he only eats its soul. +% +Chuck Norris sold his soul to the devil for his rugged good looks and unparalleled martial arts ability. Shortly after the transaction was finalized, Chuck roundhouse-kicked the devil in the face and took his soul back. The devil, who appreciates irony, couldn't stay mad and admitted he should have seen it coming. They now play poker every second Wednesday of the month. +% +Chuck Norris has never won an Academy Award for acting... because he's not acting. +% +If Chuck Norris wants your opinion, he'll beat it into you. +% +Not everyone that Chuck Norris is mad at gets killed. Some get away. They are called astronauts. +% +Chuck Norris has to register every part of his body as a separate lethal weapon. His spleen is considered a concealed weapon in over 50 states. +% +A movie scene depicting Chuck Norris losing a fight with Bruce Lee was the product of history's most expensive visual effect. When adjusted for inflation, the effect cost more than the Gross National Product of Paraguay. +% +Godzilla is a Japanese rendition of Chuck Norris' first visit to Tokyo. +% +They once made a Chuck Norris toilet paper, but there was a problem-- It wouldn't take shit from anybody. +% +Chuck Norris once rode a nine foot grizzly bear through an automatic car wash, instead of taking a shower. +% +"Sweating bullets" is literally what happens when Chuck Norris gets too hot. +% +Chuck Norris' sperm can be seen with the naked eye. Each one is the size of a quarter. +% +After taking a steroids test doctors informed Chuck Norris that he had tested positive. He laughed upon receiving this information, and said "of course my urine tested positive, what do you think they make steroids from?" +% +Chuck Norris doesn't daydream. He's too busy giving other people nightmares. +% +When Arnold says the line "I'll be back" in the first Terminator movie it is implied that is he going to ask Chuck Norris for help. +% +There are no such things as tornados. Chuck Norris just hates trailer parks. +% +Chuck Norris' Penis is a third degree blackbelt, and an honorable 32nd-degree mason. +% +Chuck Norris does not follow fashion trends, they follow him. But then he turns around and kicks their ass. Nobody follows Chuck Norris. +% +The phrase 'break a leg' was originally coined by Chuck Norris's co-stars in Walker, Texas Ranger as a good luck charm indicating that a broken leg might be the worst extent of their injuries. This never proved to be the case. +% +Chuck Norris' roundhouse kick is so powerful, it can be seen from outer space by the naked eye. +% +Diamonds are not, despite popular belief, carbon. They are, in fact, Chuck Norris fecal matter. This was proven a recently, when scientific analysis revealed what appeared to be Jean-Claude Van Damme bone fragments inside the Hope Diamond. +% +Chuck Norris once participated in the running of the bulls. He walked. +% +The Drummer for Def Leppard's only got one arm. Chuck Norris needed a back scratcher. +% +Chuck Norris was the orginal sculptor of Mount Rushmore. He completed the entire project using only a bottle opener and a drywall trowel. +% +Chuck Norris once rode a bull, and nine months later it had a calf. +% +Chuck Norris once lost the remote, but maintained control of the TV by yelling at it in between bites of his "Filet of Child" sandwich. +% +For Spring Break '05, Chuck Norris drove to Madagascar, riding a chariot pulled by two electric eels. +% +The Manhattan Project was not intended to create nuclear weapons, it was meant to recreate the destructive power in a Chuck Norris Roundhouse Kick. They didn't even come close. +% +Chuck Norris has banned rainbows from the state of North Dakota. +% +Divide Chuck Norris by zero and you will in fact get one........one bad-ass motherfucker that is. +% +TNT was originally developed by Chuck Norris to cure indigestion. +% +After returning from World War 2 unscathed, Bob Dole was congratulated by Chuck Norris with a handshake. The rest is history. +% +Chuck Norris runs on batteries. Specifically, Die Hards. +% +"Let the Bodies Hit the Floor" was originally written as Chuck Norris' theme song. +% +Chuck Norris will never have a heart attack. His heart isn't nearly foolish enough to attack him. +% +Only Chuck Norris can prevent forest fires. +% +When Chuck Norris makes a burrito, its main ingredient is real toes. +% +Chuck Norris is not Irish. His hair is soaked in the blood of his victims. +% +In the movie "The Matrix", Chuck Norris is the Matrix. If you pay close attention in the green "falling code" scenes, you can make out the faint texture of his beard. +% +Chuck Norris' dick is so big, it has it's own dick, and that dick is still bigger than yours. +% +They say curiosity killed the cat. This is false. Chuck Norris killed the cat. Every single one of them. +% +There is no such thing as a lesbian, just a woman who has never met Chuck Norris. +% +Chuck Norris crossed the road. No one has ever dared question his motives. +% +When Chuck Norris was born, he immediately had sex with the first nurse he saw. He was her first. She was his third. That afternoon. +% +One time, at band camp, Chuck Norris ate a percussionist. +% +Chuck Norris doesn't say "who's your daddy", because he knows the answer. +% +Chuck Norris originally wrote the first dictionary. The definition for each word is as follows - A swift roundhouse kick to the face. +% +Love does not hurt. Chuck Norris does. +% +The term "Cleveland Steamer" got its name from Chuck Norris, when he took a dump while visiting the Rock and Roll Hall of fame and buried northern Ohio under a glacier of fecal matter. +% +Chuck Norris once round-house kicked a salesman. Over the phone. +% +The pen is mighter than the sword, but only if the pen is held by Chuck Norris. +% +Chuck Norris doesn't kill two birds with one stone. Chuck Norris kills all birds, with two stones. The ones in his pants. +% +Chuck Norris knows the last digit of pi. +% +Those aren't credits that roll after Walker Texas Ranger. It is actually a list of fatalities that occurred during the making of the episode. +% +The air around Chuck Norris is always a balmy 78 degrees. +% +When Chuck Norris wants an egg, he cracks open a chicken. +% +Chuck Norris plays racquetball with a waffle iron and a bowling ball. +% +According to the Bible, God created the universe in six days. Before that, Chuck Norris created God by snapping his fingers. +% +Chuck Norris doesn't believe in ravioli. He stuffs a live turtle with beef and smothers it in pig's blood. +% +Count from one to ten. That's how long it would take Chuck Norris to kill you...Fourty seven times. +% +The 1972 Miami Dolphins lost one game, it was an exhibition game vs. Chuck Norris and three seven year old girls. Chuck Norris won with a roundhouse-kick to the face in overtime. +% +Chuck Norris is not Politically Correct. He is just Correct. Always. +% +Mr. T pities the fool. Chuck Norris rips the fool's fucking head off. +% +Chuck Norris had to stop washing his clothes in the ocean. The tsunamis were killing people. +% +Chuck Norris has volunteered to remain on earth after the Rapture; he will spend his time fighting the Anti-Christ. +% +They were going to release a Chuck Norris edition of Clue, but the answer always turns out to be "Chuck Norris. In The Library. With a Roundhouse Kick." +% +Chuck Norris is the only known mammal in history to have an opposable thumb. On his penis. +% +A man once taunted Chuck Norris with a bag of Lay's potato chips, saying "Betcha can't eat just one!" Chuck Norris proceeded to eat the chips, the bag, and the man in one deft move. +% +Chuck Norris' favorite cereal is Kellogg's Nails 'N' Gravel. +% +In the first Jurassic Park movie, the Tyrannosaurus Rex wasn't chasing the jeep. Chuck Norris was chasing the Tyrannosaurus AND the jeep. +% +Chuck Norris has never been accused of murder for the simple fact that his roundhouse kicks are recognized world-wide as "acts of God." +% +"Brokeback Mountain" is not just a movie. It's also what Chuck Norris calls the pile of dead ninjas in his front yard. +% +Chuck Norris does not wear a condom. Because there is no such thing as protection from Chuck Norris. +% +Chuck Norris once had sex with a cigarette machine in the Osaka airport. +% +Rules of fighting: 1) Don't bring a knife to a gun fight. 2) Don't bring a gun to a Chuck Norris fight. +% +Chuck Norris is the only man who has, literally, beaten the odds. With his fists. +% +In ancient China there is a legend that one day a child will be born from a dragon, grow to be a man, and vanquish evil from the land. That man is not Chuck Norris, because Chuck Norris killed that man. +% +Chuck Norris wipes his ass with chain mail and sandpaper. +% +When you play Monopoly with Chuck Norris, you do not pass go, and you do not collect two hundred dollars. You will be lucky if you make it out alive. +% +Chuck Norris describes human beings as "a sociable holder for blood and guts". +% +Chuck Norris once got into a fight with a one-armed Ninja. Seeing that he had an unfair advantage, Chuck Norris ripped both of his arms off and one of his legs. He then roundhouse-kicked the ninja in the head, killing him instantly, and proceeded to sow his limbs back on using only a rusty tent spike and bailing wire. +% +Chuck Norris likes his ice like he likes his skulls: crushed. +% +Chuck Norris can kick through all 6 degrees of separation, hitting anyone, anywhere, in the face, at any time. +% +Most tough men eat nails for breakfast. chuck Norris does all of his grocery shopping at Home Depot. +% +Chuck Norris did not "lose" his virginity, he stalked it and then destroyed it with extreme prejudice. +% +Everything King Midas touches turnes to gold. Everything Chuck Norris touches turns up dead. +% +Chuck Norris' pulse is measured on the richter scale. +% +Most people know that Descarte said, "I think, therefore I am." What most people don't know is that that quote continues, "...afraid of Chuck Norris." +% +Chuck Norris once roundhouse-kicked a ten dollar bill into 200 nickels. +% +For every movie about Vietnam starring Chuck Norris, the historical duration of the war decreases. Just 3 more "Missing in Action" sequels, and that war will have never actually existed. +% +Chuck Norris' penis has a Hemi. +% +Chuck Norris enjoys a good practical joke. His favorite is where he removes your lower intestine and pretends to make a balloon animal out of it. Then he cracks your skull open with a Volvo for not complimenting him on his balloon animal. +% +Chuck Norris CAN in fact 'raise the roof'. And he can do it with one hand. +% +Kenny G is allowed to live because Chuck Norris doesn't kill women. +% +Life is not, in fact, like a box of chocolates. It is more like a box of Chuck Norris, roundhouse kicking you in the face. And if you receive a box of Chuck Norris, you ALWAYS know what you are going to get. +% +For Chuck Norris, every street is "one way". HIS WAY. +% +There are now five cup sizes at Starbucks: Short, Tall, Grande, Venti, and Chuck Norris. +% +During the Vietnam War, Chuck Norris allowed himself to be captured. For torture, they made him eat his own entrails. He asked for seconds. +% +Chuck Norris once created a flamethrower by urinating into a lighter. +% +Instead of having a cigarette after sex, Chuck Norris heads outside and brands his cattle. +% +Chuck Norris actually built the stairway to heaven. +% +Whoever said "only the good die young" was probably in Chuck Norris's kindergarten class. +% +Chuck Norris once skewered a man with the Eiffel tower. +% +The best part of waking up, is not Folgers in your cup, but knowing that Chuck Norris didn't kill you in your sleep. +% +Chuck Norris doesn't own a can opener, he just chews through the can. +% +Occam's Razor says that the simplest answer tends to be the correct one. Norris' Razor involves a flick of the wrist and a Columbian Necktie. +% +Chuck Norris needs a monkeywrench and a blowtorch to masturbate. +% +Proponents of higher-order theories of consciousness argue that consciousness is explained by the relation between two levels of mental states in which a higher-order mental state takes another mental state. If you mention this to Chuck Norris, expect an explosive roundhouse kick to the face for spouting too much fancy-talk. +% +Chuck Norris invented all 32 letters of the alphabet. +% +Remember The Ultimate Warrior? He quit wrestling because Chuck Norris wanted his nickname back. +% +If a tree falls in the forest, does anybody hear? Yes. Chuck Norris hears it. Chuck Norris can hear everything. Chuck Norris can hear the shrieking terror in your soul. +% +Chuck Norris actually owns IBM. It was an extremely hostile takeover. +% +He, who laughs last, laughs best. He who laughs at Chuck Norris ? dies. +% +Chuck Norris is like a dog, not only because he can smell fear, but because he can piss on whatever the fuck he wants. +% +Chuck Norris can jump-start a car using jumper cables attached to his nipples. +% +Chuck Norris neither melts in your mouth nor in your hand. He shreds your trachea before ravaging your soul with a combination of chocolate, whickey, roundhouse kicks and death. Oh, and pain. Lots of pain. +% +Chuck Norris doesn't have blood. He is filled with magma. +% From fc606d91a0cc8f58c69af39544ddefcb2bdccc55 Mon Sep 17 00:00:00 2001 From: Deepu Mohan Puthrote Date: Sat, 7 Feb 2015 16:57:53 +0000 Subject: [PATCH 041/122] Added alias for downloading maven dependencies' sources and javadocs --- plugins/mvn/mvn.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index 0c4f77162..865b15235 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -60,6 +60,8 @@ alias mvntc='mvn tomcat:run' alias mvnjetty='mvn jetty:run' alias mvndt='mvn dependency:tree' alias mvns='mvn site' +alias mvnsrc='mvn dependency:sources' +alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc' function listMavenCompletions { reply=( From 6bccb1a7b0448610d10518e3ac9f47315e94e7b9 Mon Sep 17 00:00:00 2001 From: Jakob Jordan Date: Mon, 9 Feb 2015 18:18:15 +0100 Subject: [PATCH 042/122] removed superfluous vcs_info_msg in trapd00r theme in the trapd00r theme vcs info is already displayed on the first line if in a version controlled directory. the second vcs info was displayed at the end of the second line without providing additional information. this was removed. --- themes/trapd00r.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/trapd00r.zsh-theme b/themes/trapd00r.zsh-theme index cb1c43c56..ca1676fb5 100644 --- a/themes/trapd00r.zsh-theme +++ b/themes/trapd00r.zsh-theme @@ -86,7 +86,7 @@ prompt_jnrowe_precmd () { else dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$(zsh_path)%} %{$c0%}(%{$c5%}%?%{$c0%})" PROMPT='${vcs_info_msg_0_} -%{$fg_bold[green]%}%p%{$reset_color%}${dir_status} ${vcs_info_msg_0_}%{$reset_color%} +%{$fg_bold[green]%}%p%{$reset_color%}${dir_status}%{$reset_color%} > ' fi } From 7f636ba5901b1abe9bb01d94b9e290bed982a873 Mon Sep 17 00:00:00 2001 From: Chris Peterson Date: Mon, 17 Nov 2014 20:38:22 -0800 Subject: [PATCH 043/122] Backwards logic in newer check. Regen .ant_targets only if it's newer than build.xml? Yeah, that seems wrong. --- plugins/ant/ant.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 45f2b06eb..38d13f2a8 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,6 +1,6 @@ _ant_does_target_list_need_generating () { [ ! -f .ant_targets ] && return 0; - [ .ant_targets -nt build.xml ] && return 0; + [ build.xml -nt .ant_targets ] && return 0; return 1; } From 013b2bffcf11d0bc3ff29c96a8e6846166639c2c Mon Sep 17 00:00:00 2001 From: Chris Peterson Date: Mon, 17 Nov 2014 20:43:19 -0800 Subject: [PATCH 044/122] Change ant target enumeration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make use of ant's project help feature instead of trying to parse XML with regex (see: http://stackoverflow.com/a/1732454/740787). This is a behavioral change that does a few things: • adds support for ant imports, which were previously not recognized as possibly containing targets • supresses targets with no description, as these are conventionally for internal use only --- plugins/ant/ant.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 38d13f2a8..a945967d5 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -7,7 +7,7 @@ _ant_does_target_list_need_generating () { _ant () { if [ -f build.xml ]; then if _ant_does_target_list_need_generating; then - sed -n '/ .ant_targets + ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets fi compadd `cat .ant_targets` fi From 349493a0b81ae98117ea1a115a92ba509476298f Mon Sep 17 00:00:00 2001 From: Chris Peterson Date: Mon, 9 Feb 2015 12:43:51 -0800 Subject: [PATCH 045/122] Fix for ant targets with leading dash As suggested in https://github.com/robbyrussell/oh-my-zsh/pull/3329#issuecomment-72062236 --- plugins/ant/ant.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index a945967d5..0b738c94f 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -9,7 +9,7 @@ _ant () { 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` + compadd -- `cat .ant_targets` fi } From 5fe22fcbc6364aaacce373d71fa7d6b6f2d11a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 16 Dec 2014 00:43:01 +0100 Subject: [PATCH 046/122] Clean up and fix +1/-0 syntax to work as expected This change follows this proposed behaviour: Ctrl+Shift+Left: move to last visited directory Ctrl+Shift+Right: move to next visited directory an alternative behaviour would be: Ctrl+Shift+Left: move directory to the left in `dirs` output Ctrl+Shift+Right: move directory to the right in `dirs` output It also introduces `setopt nopushdminus` as a way to standardise pushd syntax. It's value wasn't clear before, which has been the cause of so many pull requests regarding this plugin not working in some environments. --- plugins/dircycle/dircycle.plugin.zsh | 29 ++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index c6b6ba785..2064af46a 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -1,10 +1,27 @@ -## -# dircycle plugin: enables cycling through the directory -# stack using Ctrl+Shift+Left/Right +# enables cycling through the directory stack using +# Ctrl+Shift+Left/Right +# +# left/right direction follows the order in which directories +# were visited, like left/right arrows do in a browser -eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }" +# NO_PUSHD_MINUS syntax: +# pushd +N: start counting from left of `dirs' output +# pushd -N: start counting from right of `dirs' output +setopt nopushdminus + +insert-cycledleft () { + zle push-line + LBUFFER='pushd -q +1' + zle accept-line +} zle -N insert-cycledleft -bindkey "\e[1;6D" insert-cycledleft -eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q +0'; zle accept-line }" + +insert-cycledright () { + zle push-line + LBUFFER='pushd -q -0' + zle accept-line +} zle -N insert-cycledright + +bindkey "\e[1;6D" insert-cycledleft bindkey "\e[1;6C" insert-cycledright From e93fd939adb69a498ba1296b1ce0c99786e26084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 16 Dec 2014 01:29:06 +0100 Subject: [PATCH 047/122] Run pushd command directly and trigger prompt redraw --- plugins/dircycle/dircycle.plugin.zsh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index 2064af46a..1c4a0175a 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -10,16 +10,14 @@ setopt nopushdminus insert-cycledleft () { - zle push-line - LBUFFER='pushd -q +1' - zle accept-line + builtin pushd -q +1 &>/dev/null || true + zle reset-prompt } zle -N insert-cycledleft insert-cycledright () { - zle push-line - LBUFFER='pushd -q -0' - zle accept-line + builtin pushd -q -0 &>/dev/null || true + zle reset-prompt } zle -N insert-cycledright From 999bab187c0a59301f4055fb6239a5352d3c96ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 20 Dec 2014 20:35:52 +0100 Subject: [PATCH 048/122] Emulate zsh in zlewidgets instead of static setopt command This way the user can keep their preferred pushd syntax while enabling us to use a standard syntax in our defined functions. To explain further, without a clear value on the PUSHD_MINUS option, we could be changing the +1/-0 values all we want, that some user would find that it didn't work for him. We have two options, then: - Setting a particular value, which was my first approach. - Using `emulate -L zsh` to ensure all options defined in the function's body won't be passed along to the main zsh instance. For more info see: http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html#index-emulate --- plugins/dircycle/dircycle.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index 1c4a0175a..12b20ab04 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -7,15 +7,20 @@ # NO_PUSHD_MINUS syntax: # pushd +N: start counting from left of `dirs' output # pushd -N: start counting from right of `dirs' output -setopt nopushdminus insert-cycledleft () { + emulate -L zsh + setopt nopushdminus + builtin pushd -q +1 &>/dev/null || true zle reset-prompt } zle -N insert-cycledleft insert-cycledright () { + emulate -L zsh + setopt nopushdminus + builtin pushd -q -0 &>/dev/null || true zle reset-prompt } From 282240bf37d6fd9979da2c3a41006824dbb4e268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 24 Dec 2014 01:33:28 +0100 Subject: [PATCH 049/122] Account for iTerm2 sent keys in dircycle plugin --- plugins/dircycle/dircycle.plugin.zsh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index 12b20ab04..1e31105b1 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -26,5 +26,12 @@ insert-cycledright () { } zle -N insert-cycledright -bindkey "\e[1;6D" insert-cycledleft -bindkey "\e[1;6C" insert-cycledright + +# add key bindings for iTerm2 +if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then + bindkey "^[[1;6D" insert-cycledleft + bindkey "^[[1;6C" insert-cycledright +else + bindkey "\e[1;6D" insert-cycledleft + bindkey "\e[1;6C" insert-cycledright +fi \ No newline at end of file From 25b1cd687b28cb8d05229130ee5a0e2494276894 Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Fri, 10 Jan 2014 23:32:20 +0100 Subject: [PATCH 050/122] Brings all directory stuff to directories.zsh - Cleans out aliases.zsh. - Removes unneeded cd function. --- lib/aliases.zsh | 13 ------------- lib/directories.zsh | 38 +++++++++++++++----------------------- 2 files changed, 15 insertions(+), 36 deletions(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index aae865046..c67f854a7 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -1,11 +1,3 @@ -# Push and pop directories on directory stack -alias pu='pushd' -alias po='popd' - -# Basic directory operations -alias ...='cd ../..' -alias -- -='cd -' - # Super user alias _='sudo' alias please='sudo' @@ -25,11 +17,6 @@ then else alias history='fc -l 1' fi -# List direcory contents -alias lsa='ls -lah' -alias l='ls -lah' -alias ll='ls -lh' -alias la='ls -lAh' alias afind='ack-grep -il' diff --git a/lib/directories.zsh b/lib/directories.zsh index 02743e0c7..1693d5dd1 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -3,12 +3,10 @@ setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus -alias ..='cd ..' -alias cd..='cd ..' -alias cd...='cd ../..' -alias cd....='cd ../../..' -alias cd.....='cd ../../../..' -alias cd/='cd /' +alias -g ...='../..' +alias -g ....='../../..' +alias -g .....='../../../..' +alias -g ......='../../../../..' alias 1='cd -' alias 2='cd -2' @@ -20,23 +18,17 @@ alias 7='cd -7' alias 8='cd -8' alias 9='cd -9' -cd () { - if [[ "x$*" == "x..." ]]; then - cd ../.. - elif [[ "x$*" == "x...." ]]; then - cd ../../.. - elif [[ "x$*" == "x....." ]]; then - cd ../../../.. - elif [[ "x$*" == "x......" ]]; then - cd ../../../../.. - elif [ -d ~/.autoenv ]; then - source ~/.autoenv/activate.sh - autoenv_cd "$@" - else - builtin cd "$@" - fi -} - alias md='mkdir -p' alias rd=rmdir alias d='dirs -v | head -10' + +# List direcory contents +alias lsa='ls -lah' +alias l='ls -la' +alias ll='ls -l' +alias la='ls -lA' +alias sl=ls # often screw this up + +# Push and pop directories on directory stack +alias pu='pushd' +alias po='popd' From ace98846eac9726f7161617291e1fd2affc3f4eb Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Fri, 10 Jan 2014 23:40:22 +0100 Subject: [PATCH 051/122] Pushes autoenv code to its plugin. Sources the activate.sh file or informs the user, that its not available. Overriding the cd function, as it was formerly done, is not needed anymore, activate.sh does this by itself. --- plugins/autoenv/autoenv.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh index ca5666979..a8271849e 100644 --- a/plugins/autoenv/autoenv.plugin.zsh +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -1,6 +1,17 @@ +# Activates autoenv or reports its failure +if ! source $HOME/.autoenv/activate.sh 2>/dev/null; then + echo '-------- AUTOENV ---------' + echo 'Could not find ~/.autoenv/activate.sh.' + echo 'Please check if autoenv is correctly installed.' + echo 'In the meantime the autoenv plugin is DISABLED.' + echo '--------------------------' + return 1 +fi + # The use_env call below is a reusable command to activate/create a new Python # virtualenv, requiring only a single declarative line of code in your .env files. # It only performs an action if the requested virtualenv is not the current one. + use_env() { typeset venv venv="$1" From d33b0aae917c62012bf203538ba86d6236869834 Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Fri, 10 Jan 2014 23:50:19 +0100 Subject: [PATCH 052/122] Refactors history alias and moves it. More compact case statement instead of the ugly if elif... else statement. Moves it to history.zsh --- lib/aliases.zsh | 14 -------------- lib/history.zsh | 9 +++++++++ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index c67f854a7..da29fde58 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -4,19 +4,5 @@ alias please='sudo' #alias g='grep -in' -# Show history -if [ "$HIST_STAMPS" = "mm/dd/yyyy" ] -then - alias history='fc -fl 1' -elif [ "$HIST_STAMPS" = "dd.mm.yyyy" ] -then - alias history='fc -El 1' -elif [ "$HIST_STAMPS" = "yyyy-mm-dd" ] -then - alias history='fc -il 1' -else - alias history='fc -l 1' -fi - alias afind='ack-grep -il' diff --git a/lib/history.zsh b/lib/history.zsh index e78a98e9e..5de71c2d3 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -6,6 +6,15 @@ fi HISTSIZE=10000 SAVEHIST=10000 +# Show history +case $HIST_STAMPS in + "mm/dd/yyyy") alias history='fc -fl 1' ;; + "dd.mm.yyyy") alias history='fc -El 1' ;; + "yyyy-mm-dd") alias history='fc -il 1' ;; + *) alias history='fc -l 1' ;; +esac + +setopt append_history setopt extended_history setopt hist_expire_dups_first setopt hist_ignore_dups # ignore duplication command history list From 101149b1ae6fb5ce0b982289fca901b2feab5439 Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Fri, 10 Jan 2014 23:53:14 +0100 Subject: [PATCH 053/122] Moves remaining aliases to misc and deletes file. There were only three aliases left in aliases.zsh File deleted! --- lib/aliases.zsh | 8 -------- lib/misc.zsh | 7 +++++++ 2 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 lib/aliases.zsh diff --git a/lib/aliases.zsh b/lib/aliases.zsh deleted file mode 100644 index da29fde58..000000000 --- a/lib/aliases.zsh +++ /dev/null @@ -1,8 +0,0 @@ -# Super user -alias _='sudo' -alias please='sudo' - -#alias g='grep -in' - -alias afind='ack-grep -il' - diff --git a/lib/misc.zsh b/lib/misc.zsh index a8678b8ec..892d78ef3 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -13,3 +13,10 @@ export PAGER="less" export LESS="-R" export LC_CTYPE=$LANG + +## super user alias +alias _='sudo' +alias please='sudo' + +## more intelligent acking for ubuntu users +alias afind='ack-grep -il' From 83c4e0620689d2410056bddcdfbf8e300673e982 Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Fri, 10 Jan 2014 23:55:10 +0100 Subject: [PATCH 054/122] Moves a bindkey call from misc to key-bindings. --- lib/key-bindings.zsh | 3 +++ lib/misc.zsh | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 9063c6a18..eb2b58058 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -64,6 +64,9 @@ 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 diff --git a/lib/misc.zsh b/lib/misc.zsh index 892d78ef3..ea8a05fcb 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -2,9 +2,6 @@ autoload -U url-quote-magic zle -N self-insert url-quote-magic -## file rename magick -bindkey "^[m" copy-prev-shell-word - ## jobs setopt long_list_jobs From 724143c3297249961977a957d8fa1bc92cd7be2c Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Sat, 11 Jan 2014 00:04:53 +0100 Subject: [PATCH 055/122] Deletes dot aliases from common-aliases. They are implemented in lib anyway. --- plugins/common-aliases/common-aliases.plugin.zsh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh index 90d59910c..e3830adcf 100644 --- a/plugins/common-aliases/common-aliases.plugin.zsh +++ b/plugins/common-aliases/common-aliases.plugin.zsh @@ -20,12 +20,6 @@ alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} ' alias t='tail -f' -# because typing 'cd' is A LOT of work!! -alias ..='cd ../' -alias ...='cd ../../' -alias ....='cd ../../../' -alias .....='cd ../../../../' - # Command line head / tail shortcuts alias -g H='| head' alias -g T='| tail' From 4b4292a496c139039807f082425cc5507f762c0d Mon Sep 17 00:00:00 2001 From: LFDM <1986gh@gmail.com> Date: Sat, 15 Mar 2014 00:00:14 +0100 Subject: [PATCH 056/122] Fix a typo --- lib/directories.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 1693d5dd1..b7a53ecfe 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -22,7 +22,7 @@ alias md='mkdir -p' alias rd=rmdir alias d='dirs -v | head -10' -# List direcory contents +# List directory contents alias lsa='ls -lah' alias l='ls -la' alias ll='ls -l' From 51946eb3ce8021aebe940f879225828d89c12317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Feb 2015 20:29:10 +0100 Subject: [PATCH 057/122] Implement deletion of sl alias as per #3055 --- lib/directories.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index b7a53ecfe..1a9698544 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -27,7 +27,6 @@ alias lsa='ls -lah' alias l='ls -la' alias ll='ls -l' alias la='ls -lA' -alias sl=ls # often screw this up # Push and pop directories on directory stack alias pu='pushd' From 2193135ebc4ce0778ff6949b448e4526dbd34284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Feb 2015 20:43:48 +0100 Subject: [PATCH 058/122] Clean up appearance lib file and redundant `colors` calls in other files --- lib/theme-and-appearance.zsh | 8 +++----- plugins/git-prompt/git-prompt.plugin.zsh | 3 --- plugins/jump/jump.plugin.zsh | 1 - themes/adben.zsh-theme | 15 ++++++--------- themes/apple.zsh-theme | 1 - themes/gnzh.zsh-theme | 3 +-- themes/half-life.zsh-theme | 2 -- themes/jonathan.zsh-theme | 5 +---- themes/kolo.zsh-theme | 2 -- themes/mikeh.zsh-theme | 2 -- themes/simonoff.zsh-theme | 5 +---- themes/steeef.zsh-theme | 2 -- themes/zhann.zsh-theme | 2 -- 13 files changed, 12 insertions(+), 39 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 0353f9db4..926303ca4 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -1,14 +1,13 @@ # ls colors -autoload colors; colors; +autoload -U colors && colors export LSCOLORS="Gxfxcxdxbxegedabagacad" -#export LS_COLORS # Enable ls colors if [ "$DISABLE_LS_COLORS" != "true" ] then # Find the option for using colors in ls, depending on the version: Linux or BSD if [[ "$(uname -s)" == "NetBSD" ]]; then - # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); + # 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 2>&1 && alias ls='gls --color=tty' elif [[ "$(uname -s)" == "OpenBSD" ]]; then @@ -23,7 +22,7 @@ fi #setopt no_beep setopt auto_cd setopt multios -setopt cdablevarS +setopt cdablevars if [[ x$WINDOW != x ]] then @@ -43,4 +42,3 @@ ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is c # Setup the prompt with pretty colors setopt prompt_subst - diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index 01b8a88d9..d868a5fe1 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -2,9 +2,6 @@ # http://github.com/olivierverdier/zsh-git-prompt # export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt -# Initialize colors. -autoload -U colors -colors # Allow for functions in the prompt. setopt PROMPT_SUBST diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index b16814fe4..d082c11e5 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -27,7 +27,6 @@ unmark() { rm -i "$MARKPATH/$1" } -autoload colors marks() { for link in $MARKPATH/*(@); do local markname="$fg[cyan]${link:t}$reset_color" diff --git a/themes/adben.zsh-theme b/themes/adben.zsh-theme index 6869c8a20..212b823a5 100644 --- a/themes/adben.zsh-theme +++ b/themes/adben.zsh-theme @@ -69,17 +69,17 @@ function precmd { #Choose from all databases, regardless of whether they are considered "offensive" fortune -a } - #obtains the tip + #obtains the tip ps1_command_tip () { wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' - } + } prompt_header () { if [[ "true" == "$ENABLE_COMMAND_TIP" ]]; then ps1_command_tip else ps1_fortune - fi - } + fi + } PROMPT_HEAD="${RED_START}${PR_YELLOW}$(prompt_header)${PR_RESET}" # set a simple variable to show when in screen if [[ -n "${WINDOW}" ]]; then @@ -99,11 +99,8 @@ prompt_context () { set_prompt () { # required for the prompt setopt prompt_subst - autoload colors zsh/terminfo - if [[ "$terminfo[colors]" -gt 8 ]]; then - colors - fi - + autoload zsh/terminfo + # ######### PROMPT ######### PROMPT='${PROMPT_HEAD} ${RED_START}$(prompt_context) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 275341dc6..95e6249fa 100644 --- a/themes/apple.zsh-theme +++ b/themes/apple.zsh-theme @@ -7,7 +7,6 @@ get_git_dirty() { } autoload -Uz vcs_info -autoload -U colors && colors zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' unstagedstr '%F{red}*' # display this when there are unstaged changes zstyle ':vcs_info:*' stagedstr '%F{yellow}+' # display this when there are staged changes diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 0519fbefb..ab154c1e5 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -2,8 +2,7 @@ # Based on bira theme # load some modules -autoload -U colors zsh/terminfo # Used in the colour alias below -colors +autoload -U zsh/terminfo # Used in the colour alias below setopt prompt_subst # make some aliases for the colours: (could use normal escape sequences too) diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index 942affa94..a3c505706 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -13,8 +13,6 @@ function virtualenv_info { PR_GIT_UPDATE=1 setopt prompt_subst -autoload colors -colors autoload -U add-zsh-hook autoload -Uz vcs_info diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index bca92970c..2f0e77431 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -44,10 +44,7 @@ setprompt () { ### # See if we can use colors. - autoload colors zsh/terminfo - if [[ "$terminfo[colors]" -ge 8 ]]; then - colors - fi + autoload zsh/terminfo for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE GREY; do eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' diff --git a/themes/kolo.zsh-theme b/themes/kolo.zsh-theme index e743289c3..51b0af724 100644 --- a/themes/kolo.zsh-theme +++ b/themes/kolo.zsh-theme @@ -1,5 +1,3 @@ -autoload -U colors && colors - autoload -Uz vcs_info zstyle ':vcs_info:*' stagedstr '%F{green}●' diff --git a/themes/mikeh.zsh-theme b/themes/mikeh.zsh-theme index 943f04d38..a95383ba5 100644 --- a/themes/mikeh.zsh-theme +++ b/themes/mikeh.zsh-theme @@ -1,6 +1,4 @@ setopt prompt_subst -autoload colors -colors autoload -U add-zsh-hook autoload -Uz vcs_info diff --git a/themes/simonoff.zsh-theme b/themes/simonoff.zsh-theme index fb4d32e24..63ce4261b 100644 --- a/themes/simonoff.zsh-theme +++ b/themes/simonoff.zsh-theme @@ -63,10 +63,7 @@ setprompt () { ### # See if we can use colors. - autoload colors zsh/terminfo - if [[ "$terminfo[colors]" -ge 8 ]]; then - colors - fi + autoload zsh/terminfo for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme index e38188d35..13728ca9a 100644 --- a/themes/steeef.zsh-theme +++ b/themes/steeef.zsh-theme @@ -15,8 +15,6 @@ function virtualenv_info { PR_GIT_UPDATE=1 setopt prompt_subst -autoload colors -colors autoload -U add-zsh-hook autoload -Uz vcs_info diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme index 5c0854730..27597ec6c 100644 --- a/themes/zhann.zsh-theme +++ b/themes/zhann.zsh-theme @@ -1,5 +1,3 @@ -autoload -U colors && colors - autoload -Uz vcs_info zstyle ':vcs_info:*' stagedstr '%F{green}●' From 80d856e1655cc2b2e9d6899bae884631283a8063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 26 Dec 2014 22:33:36 +0100 Subject: [PATCH 059/122] Clean up web-search plugin logic to allow easier changes --- plugins/web-search/web-search.plugin.zsh | 55 ++++++++++++------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 28559deb9..1e661250a 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -1,42 +1,43 @@ # web_search from terminal function web_search() { - # get the open command - local open_cmd - if [[ "$OSTYPE" = darwin* ]]; then - open_cmd='open' - else - open_cmd='xdg-open' - fi + emulate -L zsh + + # define search engine URLS + typeset -A urls + urls=( + google "https://www.google.com/search?q=" + bing "https://www.bing.com/search?q=" + yahoo "https://www.yahoo.com/search?q=" + duckduckgo "https://www.duckduckgo.com/?q=" + ) + + # define the open command + case "$OSTYPE" in + darwin*) open_cmd="open" ;; + linux*) open_cmd="xdg-open" ;; + *) echo "Platform $OSTYPE not supported" + return 1 + ;; + esac # check whether the search engine is supported - if [[ ! $1 =~ '(google|bing|yahoo|duckduckgo)' ]]; - then + if [[ -z "$urls[$1]" ]]; then echo "Search engine $1 not supported." return 1 fi - local url="http://www.$1.com" - - # no keyword provided, simply open the search engine homepage - if [[ $# -le 1 ]]; then - $open_cmd "$url" - return - fi - if [[ $1 == 'duckduckgo' ]]; then - #slightly different search syntax for DDG - url="${url}/?q=" + # search or go to main page depending on number of arguments passed + if [[ $# -gt 1 ]]; then + # build search url: + # join arguments passed with '+', then append to search engine URL + url="${urls[$1]}${(j:+:)@[2,-1]}" else - url="${url}/search?q=" + # build main page url: + # split by '/', then rejoin protocol (1) and domain (2) parts with '//' + url="${(j://:)${(s:/:)urls[$1]}[1,2]}" fi - shift # shift out $1 - while [[ $# -gt 0 ]]; do - url="${url}$1+" - shift - done - - url="${url%?}" # remove the last '+' nohup $open_cmd "$url" >/dev/null 2&>1 } From 80ba54a94fe7d7628d159823d5c63e12811c68b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 27 Dec 2014 02:27:24 +0100 Subject: [PATCH 060/122] Add Yandex support to web-search plugin --- plugins/web-search/web-search.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 1e661250a..5e3c00d3c 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -10,6 +10,7 @@ function web_search() { bing "https://www.bing.com/search?q=" yahoo "https://www.yahoo.com/search?q=" duckduckgo "https://www.duckduckgo.com/?q=" + yandex "http://yandex.ru/yandsearch?text=" ) # define the open command @@ -46,6 +47,8 @@ alias bing='web_search bing' alias google='web_search google' alias yahoo='web_search yahoo' alias ddg='web_search duckduckgo' +alias yandex='web_search yandex' + #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' From adaea31ca013054094a45b009ab22382c4d94666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 27 Dec 2014 02:30:16 +0100 Subject: [PATCH 061/122] Silence nohup output in web-search plugin --- plugins/web-search/web-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 5e3c00d3c..19f9cad33 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -39,7 +39,7 @@ function web_search() { url="${(j://:)${(s:/:)urls[$1]}[1,2]}" fi - nohup $open_cmd "$url" >/dev/null 2&>1 + nohup $open_cmd "$url" &>/dev/null } From c45885093fd8fa3375286ef1dcba9bc296e08a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 27 Dec 2014 02:56:30 +0100 Subject: [PATCH 062/122] Add support for cygwin open in web-search plugin --- plugins/web-search/web-search.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 19f9cad33..52d03b2d0 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -16,6 +16,7 @@ function web_search() { # define the open command case "$OSTYPE" in darwin*) open_cmd="open" ;; + cygwin*) open_cmd="cygstart" ;; linux*) open_cmd="xdg-open" ;; *) echo "Platform $OSTYPE not supported" return 1 From e8daf8150e923bfd30769e9a55c15daec523996b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 27 Dec 2014 03:15:56 +0100 Subject: [PATCH 063/122] Fix yahoo search URL in web-search plugin --- plugins/web-search/web-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 52d03b2d0..b0a4a2926 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -8,7 +8,7 @@ function web_search() { urls=( google "https://www.google.com/search?q=" bing "https://www.bing.com/search?q=" - yahoo "https://www.yahoo.com/search?q=" + yahoo "https://search.yahoo.com/search?p=" duckduckgo "https://www.duckduckgo.com/?q=" yandex "http://yandex.ru/yandsearch?text=" ) From 02d75684f3ddd2dcd181c9265545d5639d09bd5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 4 Jan 2015 01:40:25 +0100 Subject: [PATCH 064/122] Force using https in Yandex search engine --- plugins/web-search/web-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index b0a4a2926..572427b0b 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -10,7 +10,7 @@ function web_search() { bing "https://www.bing.com/search?q=" yahoo "https://search.yahoo.com/search?p=" duckduckgo "https://www.duckduckgo.com/?q=" - yandex "http://yandex.ru/yandsearch?text=" + yandex "https://yandex.ru/yandsearch?text=" ) # define the open command From 0cc3afe27788e35d5f72236f41a7e4514c11491d Mon Sep 17 00:00:00 2001 From: Julien Pepy Date: Fri, 5 Dec 2014 09:57:59 +0100 Subject: [PATCH 065/122] Fix get command list for recent composer versions --- plugins/composer/composer.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 86f2ca4df..f75119c4a 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -7,7 +7,7 @@ # Composer basic command completion _composer_get_command_list () { - composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' + composer --no-ansi | sed "1,/Available commands/d" | awk '/^\s*[a-z]+/ { print $1 }' } _composer_get_required_list () { From 5f4e8e57da117b5fc2325ea411aafc66053b8570 Mon Sep 17 00:00:00 2001 From: Andrey Janzen Date: Fri, 26 Jul 2013 00:37:11 +0700 Subject: [PATCH 066/122] Allow completion for 'composer.phar', not only 'composer' Use $_comp_command1 for command list generation instead of 'composer': `$_comp_command1` contains the command written in the command line. This allows us to have a different composer name --- plugins/composer/composer.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index f75119c4a..324bc64a0 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -7,11 +7,11 @@ # Composer basic command completion _composer_get_command_list () { - composer --no-ansi | sed "1,/Available commands/d" | awk '/^\s*[a-z]+/ { print $1 }' + $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^\s*[a-z]+/ { print $1 }' } _composer_get_required_list () { - composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' + $_comp_command1 show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' } _composer () { @@ -35,6 +35,7 @@ _composer () { } compdef _composer composer +compdef _composer composer.phar # Aliases alias c='composer' From ef220f0928269f3cdb613db3d3f9ba7775317109 Mon Sep 17 00:00:00 2001 From: Maxime Fabre Date: Sat, 17 Aug 2013 17:11:21 +0200 Subject: [PATCH 067/122] Add aliases for composer global --- plugins/composer/composer.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 324bc64a0..97207242a 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -41,9 +41,12 @@ compdef _composer composer.phar alias c='composer' alias csu='composer self-update' alias cu='composer update' +alias cr='composer require' alias ci='composer install' alias ccp='composer create-project' alias cdu='composer dump-autoload' +alias cgu='composer global update' +alias cgr='composer global require' # install composer in the current directory alias cget='curl -s https://getcomposer.org/installer | php' From 6fb866183d84e53fa009853691e5c0bdd101820b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 4 Jan 2015 22:24:55 +0100 Subject: [PATCH 068/122] Remove composer.json file requirement This is because we can't be sure which arguments require a json file and which don't, so the `else' statement will always be difficult to check for correctness. --- plugins/composer/composer.plugin.zsh | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 97207242a..7f70e3d72 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -20,18 +20,15 @@ _composer () { _arguments \ '1: :->command'\ '*: :->args' - if [ -f composer.json ]; then - case $state in - command) - compadd `_composer_get_command_list` - ;; - *) - compadd `_composer_get_required_list` - ;; - esac - else - compadd create-project init search selfupdate show - fi + + case $state in + command) + compadd $(_composer_get_command_list) + ;; + *) + compadd $(_composer_get_required_list) + ;; + esac } compdef _composer composer From c3940cf44a58393906e896decc93542c3ab17f4a Mon Sep 17 00:00:00 2001 From: Martin Schrodi Date: Fri, 14 Mar 2014 11:52:40 +0100 Subject: [PATCH 069/122] Fixed breakage in new git repo without commits --- themes/rkj-repos.zsh-theme | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index eed084f15..0a9f83d36 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -19,7 +19,8 @@ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" function mygit() { ref1=$(git symbolic-ref HEAD 2> /dev/null) || return - ref2=$(git rev-parse HEAD | head -c 6) || return + gitdir=$(git rev-parse --git-dir 2> /dev/null) || return + heads=($gitdir/refs/heads/*(N)) ; [[ -z $heads ]] && ref2="" || ref2=$(git rev-parse HEAD | head -c 6) ref="$ref1 %{$fg[grey]%}$ref2" #ref=$(git symbolic-ref HEAD 2> /dev/null) $(git rev-parse HEAD | head -c 6) || return echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX " From f04246aa4820031c025ed25baf0df23d786d38fd Mon Sep 17 00:00:00 2001 From: Martin Schrodi Date: Sat, 19 Apr 2014 03:04:58 +0200 Subject: [PATCH 070/122] rkj-repos: code cleanup and updated with functions from lib/git.zsh (thx mcornella) --- themes/rkj-repos.zsh-theme | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 0a9f83d36..8585e66be 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -16,14 +16,15 @@ ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}✗" ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}➦" ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%}✂" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" +ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$fg[grey]%}" +ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}" function mygit() { - ref1=$(git symbolic-ref HEAD 2> /dev/null) || return - gitdir=$(git rev-parse --git-dir 2> /dev/null) || return - heads=($gitdir/refs/heads/*(N)) ; [[ -z $heads ]] && ref2="" || ref2=$(git rev-parse HEAD | head -c 6) - ref="$ref1 %{$fg[grey]%}$ref2" - #ref=$(git symbolic-ref HEAD 2> /dev/null) $(git rev-parse HEAD | head -c 6) || return - echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX " + if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then + ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(command git rev-parse --short HEAD 2> /dev/null) || return + echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(git_prompt_short_sha)$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX " + fi } function retcode() {} From 4fc6dccb4286828c7cd53d3612ec69b0c0d9aaf2 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Sat, 20 Dec 2014 02:24:26 -0500 Subject: [PATCH 071/122] term: Move DISABLE_AUTO_TITLE check to hooks Move the DISABLE_AUTO_TITLE check from title() to the preX hook functions that call it, to allow the title() function to be used directly by user or other callers. --- lib/termsupport.zsh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index bd0cf6ffe..2fa61c431 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -1,8 +1,16 @@ -#usage: title short_tab_title looooooooooooooooooooooggggggg_windows_title -#http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1 -#Fully support screen, iterm, and probably most modern xterm and rxvt +# 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 { - if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then + if [[ $2 == "" ]]; then + 2="$1" + fi + if [[ "$EMACS" == *term* ]]; then return fi if [[ "$TERM" == screen* ]]; then @@ -18,6 +26,10 @@ ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" # Runs before showing the prompt function omz_termsupport_precmd { + if [[ $DISABLE_AUTO_TITLE == true ]]; then + return + fi + title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE # Notify Terminal.app of current directory using undocumented OSC sequence @@ -30,6 +42,10 @@ function omz_termsupport_precmd { # Runs before executing the command function omz_termsupport_preexec { + if [[ $DISABLE_AUTO_TITLE == true ]]; then + return + fi + emulate -L zsh setopt extended_glob From b7e5dd35efb0750634eb16b7040337ce80f67684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 10 Feb 2015 19:43:25 +0100 Subject: [PATCH 072/122] Quick-fix code style --- lib/termsupport.zsh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 2fa61c431..f21b0b041 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -7,12 +7,12 @@ # (In screen, only short_tab_title is used) # Limited support for Apple Terminal (Terminal can't set window and tab separately) function title { - if [[ $2 == "" ]]; then - 2="$1" - fi - if [[ "$EMACS" == *term* ]]; then - return - fi + [[ "$EMACS" == *term* ]] && return + + # if $2 is unset use $1 as default + # if it is set and empty, leave it as is + : ${2=$1} + if [[ "$TERM" == screen* ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ $TERM == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then From 2e41d06b7655067272cee1e54d2d66693136a90f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 10 Feb 2015 19:53:40 +0100 Subject: [PATCH 073/122] Use quoted $TERM value everywhere --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index f21b0b041..58c6203a0 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -15,7 +15,7 @@ function title { if [[ "$TERM" == screen* ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars - elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ $TERM == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then + elif [[ "$TERM" == xterm* ]] || [[ "$TERM" == rxvt* ]] || [[ "$TERM" == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name print -Pn "\e]1;$1:q\a" #set icon (=tab) name fi From 4161aa4f9de45233bdee7073933498422a50d213 Mon Sep 17 00:00:00 2001 From: Brandon Sandrowicz Date: Tue, 20 May 2014 09:41:36 -0400 Subject: [PATCH 074/122] Fixing virtualenvwrapper plugin for Ubuntu (and Debian) Ubuntu and Debian store the system-installed virtualenvwrapper in /etc/bash_completion.d/virtualenvwrapper, so that it gets automatically sourced at startup in Bash. By not putting it somewhere in $PATH, they end up excluding others (e.g. Zsh) that might want to use that file. Oops! The virtualenvwrapper plugin should account for this so that Ubuntu (or Debian) users don't end up with this message: zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with `pip install virtualenvwrapper`. even when they have a virtualenvwrapper installed to a known location. --- .../virtualenvwrapper/virtualenvwrapper.plugin.zsh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 217ab0722..9a0616b72 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,12 +1,19 @@ virtualenvwrapper='virtualenvwrapper.sh' + if (( $+commands[$virtualenvwrapper] )); then - source ${${virtualenvwrapper}:c} +elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then + virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper" + source "/etc/bash_completion.d/virtualenvwrapper" +else + print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`." + return +fi +if type workon 2>&1 >/dev/null; then if [[ "$WORKON_HOME" == "" ]]; then echo "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" else - if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then # Automatically activate Git projects's virtual environments based on the # directory name of the project. Virtual environment name can be overridden @@ -61,5 +68,5 @@ if (( $+commands[$virtualenvwrapper] )); then fi fi else - print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`." + print "zsh virtualenvwrapper plugin: shell function 'workon' not defined. Please check ${virtualenvwrapper}." >&2 fi From b62911660d3743d3dfb0116f5b05aabd67a24a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 10 Feb 2015 12:20:24 +0100 Subject: [PATCH 075/122] Organize error checking in virtualenwrapper plugin --- .../virtualenvwrapper.plugin.zsh | 123 +++++++++--------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 9a0616b72..0ad336917 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -6,67 +6,70 @@ elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper" source "/etc/bash_completion.d/virtualenvwrapper" else - print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`." + print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}.\n"\ + "Please install with \`pip install virtualenvwrapper\`" >&2 + return +fi +if ! type workon &>/dev/null; then + print "zsh virtualenvwrapper plugin: shell function 'workon' not defined.\n"\ + "Please check ${virtualenvwrapper}" >&2 return fi -if type workon 2>&1 >/dev/null; then - if [[ "$WORKON_HOME" == "" ]]; then - echo "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" - else - if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then - # Automatically activate Git projects's virtual environments based on the - # directory name of the project. Virtual environment name can be overridden - # by placing a .venv file in the project root with a virtualenv name in it - function workon_cwd { - if [ ! $WORKON_CWD ]; then - WORKON_CWD=1 - # Check if this is a Git repo - PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` - if (( $? != 0 )); then - PROJECT_ROOT="." - fi - # Check for virtualenv name override - if [[ -f "$PROJECT_ROOT/.venv" ]]; then - ENV_NAME=`cat "$PROJECT_ROOT/.venv"` - elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then - ENV_NAME="$PROJECT_ROOT/.venv" - elif [[ "$PROJECT_ROOT" != "." ]]; then - ENV_NAME=`basename "$PROJECT_ROOT"` - else - ENV_NAME="" - fi - if [[ "$ENV_NAME" != "" ]]; then - # Activate the environment only if it is not already active - if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then - if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then - workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" - elif [[ -e "$ENV_NAME/bin/activate" ]]; then - source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" - fi - fi - elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then - # We've just left the repo, deactivate the environment - # Note: this only happens if the virtualenv was activated automatically - deactivate && unset CD_VIRTUAL_ENV - fi - unset PROJECT_ROOT - unset WORKON_CWD - fi - } - - # Append workon_cwd to the chpwd_functions array, so it will be called on cd - # http://zsh.sourceforge.net/Doc/Release/Functions.html - # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 - if (( ${+chpwd_functions} )); then - if (( $chpwd_functions[(I)workon_cwd] == 0 )); then - set -A chpwd_functions $chpwd_functions workon_cwd - fi - else - set -A chpwd_functions workon_cwd - fi - fi - fi -else - print "zsh virtualenvwrapper plugin: shell function 'workon' not defined. Please check ${virtualenvwrapper}." >&2 +if [[ "$WORKON_HOME" == "" ]]; then + print "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" >&2 + return +fi + +if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then + # Automatically activate Git projects's virtual environments based on the + # directory name of the project. Virtual environment name can be overridden + # by placing a .venv file in the project root with a virtualenv name in it + function workon_cwd { + if [ ! $WORKON_CWD ]; then + WORKON_CWD=1 + # Check if this is a Git repo + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` + if (( $? != 0 )); then + PROJECT_ROOT="." + fi + # Check for virtualenv name override + if [[ -f "$PROJECT_ROOT/.venv" ]]; then + ENV_NAME=`cat "$PROJECT_ROOT/.venv"` + elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then + ENV_NAME="$PROJECT_ROOT/.venv" + elif [[ "$PROJECT_ROOT" != "." ]]; then + ENV_NAME=`basename "$PROJECT_ROOT"` + else + ENV_NAME="" + fi + if [[ "$ENV_NAME" != "" ]]; then + # Activate the environment only if it is not already active + if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then + if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then + workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" + elif [[ -e "$ENV_NAME/bin/activate" ]]; then + source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" + fi + fi + elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then + # We've just left the repo, deactivate the environment + # Note: this only happens if the virtualenv was activated automatically + deactivate && unset CD_VIRTUAL_ENV + fi + unset PROJECT_ROOT + unset WORKON_CWD + fi + } + + # Append workon_cwd to the chpwd_functions array, so it will be called on cd + # http://zsh.sourceforge.net/Doc/Release/Functions.html + # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 + if (( ${+chpwd_functions} )); then + if (( $chpwd_functions[(I)workon_cwd] == 0 )); then + set -A chpwd_functions $chpwd_functions workon_cwd + fi + else + set -A chpwd_functions workon_cwd + fi fi From 732c7b8070a75ac5ad5384b4d22d19f499e8424f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 10 Feb 2015 12:24:05 +0100 Subject: [PATCH 076/122] Simplify adding workon_cwd to chpwd hook --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 0ad336917..5faa1a823 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -64,12 +64,7 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then # Append workon_cwd to the chpwd_functions array, so it will be called on cd # http://zsh.sourceforge.net/Doc/Release/Functions.html - # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 - if (( ${+chpwd_functions} )); then - if (( $chpwd_functions[(I)workon_cwd] == 0 )); then - set -A chpwd_functions $chpwd_functions workon_cwd - fi - else - set -A chpwd_functions workon_cwd + if ! (( $chpwd_functions[(I)workon_cwd] )); then + chpwd_functions+=(workon_cwd) fi fi From 448e966129bb5c08c7b2da4636491f0f890cf0ab Mon Sep 17 00:00:00 2001 From: frozen_dude Date: Mon, 29 Jul 2013 20:04:23 +0200 Subject: [PATCH 077/122] Fix for bad LC_CTYPE entry LANG is a colon-separated list of prefered locales; LC_CTYPE is single entry, therefore we need to remove all but one entry. Also, there is no need setting it if it is already set (LC_ALL also sets LC_CTYPE, so we check it too). --- lib/misc.zsh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index ea8a05fcb..6987c099c 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -9,11 +9,21 @@ setopt long_list_jobs export PAGER="less" export LESS="-R" -export LC_CTYPE=$LANG - ## super user alias alias _='sudo' alias please='sudo' ## more intelligent acking for ubuntu users alias afind='ack-grep -il' + +## how to interpret text characters +if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then # only define if undefined + export LC_CTYPE=${LANG%%:*} # pick the first entry from LANG + [[ -z "$LC_CTYPE" ]] && \ + export LC_CTYPE=`locale -a | grep en_US.utf8 | head -1` + [[ -z "$LC_CTYPE" ]] && \ + export LC_CTYPE=`locale -a | grep en_US | head -1` + [[ -z "$LC_CTYPE" ]] && \ + export LC_CTYPE=C # default to internal encoding. +fi + From 0edf416bea1a180e82a8f5f96444d74fabb5867f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Feb 2015 18:57:23 +0100 Subject: [PATCH 078/122] Temporarily delete over-engineered solution --- lib/misc.zsh | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 6987c099c..0b7cb2696 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -16,14 +16,7 @@ alias please='sudo' ## more intelligent acking for ubuntu users alias afind='ack-grep -il' -## how to interpret text characters -if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then # only define if undefined - export LC_CTYPE=${LANG%%:*} # pick the first entry from LANG - [[ -z "$LC_CTYPE" ]] && \ - export LC_CTYPE=`locale -a | grep en_US.utf8 | head -1` - [[ -z "$LC_CTYPE" ]] && \ - export LC_CTYPE=`locale -a | grep en_US | head -1` - [[ -z "$LC_CTYPE" ]] && \ - export LC_CTYPE=C # default to internal encoding. +# 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 - From 3ba10ad0a2ed85c26e096126a7899a401cf8f9e7 Mon Sep 17 00:00:00 2001 From: Ashley Valent Date: Wed, 11 Feb 2015 11:19:42 +1100 Subject: [PATCH 079/122] Added cab autocompletion to the cabal plugin. cab is a wrapper for ghc-pkg and cabal that provides some nice features like listing outdated packages. See https://hackage.haskell.org/package/cab for more details on the cab program. --- plugins/cabal/cabal.plugin.zsh | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index 9f76add7a..cf7d2cf5e 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -45,3 +45,43 @@ function _cabal_commands() { } 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_.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 } From 6967393fe6dacc45f5339e0cfacbabe41f8882fb Mon Sep 17 00:00:00 2001 From: James Womack Date: Thu, 12 Feb 2015 23:19:43 -0800 Subject: [PATCH 080/122] Add convenience aliases for installation of npm modules --- plugins/npm/npm.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index c3eb91d31..d19079b3f 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -1 +1,7 @@ eval "$(npm completion 2>/dev/null)" + +# Install and save to dependencies +alias npms="npm i -S " + +# Install and save to dev-dependencies +alias npmd="npm i -D " From 68955f17ad5fe1cc4461868b2b2d059976d43dfb Mon Sep 17 00:00:00 2001 From: ctroncoso Date: Fri, 13 Feb 2015 09:49:54 -0300 Subject: [PATCH 081/122] docker containers based on defined names docker container autocomplete listing uses containers ID instead of names. Most users identify their containers by name. ID is only needed and used on a dynamic environment more suited in scripts. --- plugins/docker/_docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 880b6faa6..14bad1e7e 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -11,7 +11,7 @@ # Output a selectable list of all running docker containers __docker_containers() { declare -a cont_cmd - cont_cmd=($(docker ps | awk 'NR>1{print $1":[CON("$1")"$2"("$3")]"}')) + cont_cmd=($(docker ps | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}')) _describe 'containers' cont_cmd } From 3704fbb71eb4d886aff11cdaff79a1a23a895cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Feb 2015 19:58:33 +0100 Subject: [PATCH 082/122] Extract CWD notifier back out of auto-title hooks --- lib/termsupport.zsh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 58c6203a0..e1c2e2f93 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -31,13 +31,6 @@ function omz_termsupport_precmd { fi title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE - - # Notify Terminal.app of current directory using undocumented OSC sequence - # found in OS X 10.9 and 10.10's /etc/bashrc - if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then - local PWD_URL="file://$HOSTNAME${PWD// /%20}" - printf '\e]7;%s\a' "$PWD_URL" - fi } # Runs before executing the command @@ -58,3 +51,16 @@ function omz_termsupport_preexec { precmd_functions+=(omz_termsupport_precmd) preexec_functions+=(omz_termsupport_preexec) + + +# Runs before showing the prompt, to update the current directory in Terminal.app +function omz_termsupport_cwd { + # Notify Terminal.app of current directory using undocumented OSC sequence + # found in OS X 10.9 and 10.10's /etc/bashrc + if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then + local PWD_URL="file://$HOSTNAME${PWD// /%20}" + printf '\e]7;%s\a' "$PWD_URL" + fi +} + +precmd_functions+=(omz_termsupport_cwd) From 4b20bfe0ee4c5ae85a926b7c496b34cf9091f5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Feb 2015 20:30:01 +0100 Subject: [PATCH 083/122] Fix first-tab completion in task command This is done by calling `_task` at the end of the _task completion file, as is standard in completion files. --- plugins/taskwarrior/_task | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/taskwarrior/_task b/plugins/taskwarrior/_task index 0bda738bb..5cc253152 100644 --- a/plugins/taskwarrior/_task +++ b/plugins/taskwarrior/_task @@ -246,3 +246,5 @@ _task_default() { return ret } + +_task From 7c00bcdb829fad5e7306358259761037d297fb15 Mon Sep 17 00:00:00 2001 From: Matthias Doering Date: Sat, 14 Feb 2015 10:34:22 -0800 Subject: [PATCH 084/122] Modify theme to optimize the usability, when you use solarized dark as shell color scheme. --- themes/rkj-repos.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 8585e66be..a3f1f3dfa 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -15,8 +15,8 @@ ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}✱" ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}✗" ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}➦" ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%}✂" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" -ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$fg[grey]%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[blue]%}✈" +ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$fg[blue]%}" ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}" function mygit() { From ec9525b94e938c476c07e68bb479eb848bb5dbc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Vaello=20Mart=C3=ADnez?= Date: Sun, 15 Feb 2015 15:39:50 +0100 Subject: [PATCH 085/122] Add initial JHBuild plugin support This is a bunch of alias for the JHBuild tool. A well known tool in the GNOME dev project. --- plugins/jhbuild/README.md | 4 ++++ plugins/jhbuild/jhbuild.plugin.zsh | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 plugins/jhbuild/README.md create mode 100644 plugins/jhbuild/jhbuild.plugin.zsh diff --git a/plugins/jhbuild/README.md b/plugins/jhbuild/README.md new file mode 100644 index 000000000..910526966 --- /dev/null +++ b/plugins/jhbuild/README.md @@ -0,0 +1,4 @@ +## JHBuild +**Maintainer:** [Miguel Vaello](https://github.com/miguxbe) + +This plugin adds some jhbuild aliases and increase the completion function provided by zsh. diff --git a/plugins/jhbuild/jhbuild.plugin.zsh b/plugins/jhbuild/jhbuild.plugin.zsh new file mode 100644 index 000000000..fed1bc9fc --- /dev/null +++ b/plugins/jhbuild/jhbuild.plugin.zsh @@ -0,0 +1,28 @@ +# Aliases +# +alias jh='jhbuild' +# Build +alias jhb='jhbuild build' +alias jhbo='jhbuild buildone' +# Checks +alias jhckb='jhbuild checkbranches' +alias jhckm='jhbuild checkmodulesets' +# Info & list +alias jhi='jhbuild info' +alias jhl='jhbuild list' +# Clean +alias jhc='jhbuild clean' +alias jhco='jhbuild cleanone' +# Run +alias jhr='jhbuild run' +# Depends +alias jhrd='jhbuild rdepends' +alias jhsd='jhbuild sysdeps' +# Update +alias jhu='jhbuild update' +alias jhuo='jhbuild updateone' +# Uninstall +alias jhun='jhbuild uninstall' + + + From b39dbec7e9d49083be5d9034604f98f1a4d264fd Mon Sep 17 00:00:00 2001 From: Alexandros Giouzenis Date: Tue, 3 Feb 2015 18:58:09 +0200 Subject: [PATCH 086/122] Fix tmuxinator completion for symlinked dirs Tmuxinator start command can be ommited Fix #2812 --- plugins/tmuxinator/_tmuxinator | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/tmuxinator/_tmuxinator b/plugins/tmuxinator/_tmuxinator index e4f8b6ce0..551267ed2 100644 --- a/plugins/tmuxinator/_tmuxinator +++ b/plugins/tmuxinator/_tmuxinator @@ -8,6 +8,8 @@ _arguments -C \ '1: :->cmds' \ '2:: :->args' && ret=0 +_configs=(${$(echo ~/.tmuxinator/*.yml):r:t}) + case $state in cmds) _values "tmuxinator command" \ @@ -21,13 +23,13 @@ case $state in "list[list all existing projects]" \ "doctor[look for problems in your configuration]" \ "help[shows this help document]" \ - "version[shows tmuxinator version number]" + "version[shows tmuxinator version number]" \ + $_configs ret=0 ;; args) case $line[1] in start|open|copy|delete|debug) - _configs=(`find ~/.tmuxinator -name \*.yml | cut -d/ -f5 | sed s:.yml::g`) [[ -n "$_configs" ]] && _values 'configs' $_configs ret=0 ;; From 2790a5e565ecf1a695c25c7ef0d5aa23f8bb5239 Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Sun, 15 Feb 2015 11:37:28 -0800 Subject: [PATCH 087/122] Bring back -h option to ls variants The -h options in l, ll, and la were lost in 25b1cd6. There's no reason to remove them. --- lib/directories.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 1a9698544..3bffa9fd9 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -24,9 +24,9 @@ alias d='dirs -v | head -10' # List directory contents alias lsa='ls -lah' -alias l='ls -la' -alias ll='ls -l' -alias la='ls -lA' +alias l='ls -lah' +alias ll='ls -lh' +alias la='ls -lAh' # Push and pop directories on directory stack alias pu='pushd' From 7c73a3aea4861a281bc931a064f13a7c7da3b6be Mon Sep 17 00:00:00 2001 From: pi0 Date: Mon, 16 Feb 2015 11:58:54 +0330 Subject: [PATCH 088/122] Laravel 5 support --- plugins/laravel4/laravel4.plugin.zsh | 2 +- plugins/laravel5/laravel5.plugin.zsh | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 plugins/laravel5/laravel5.plugin.zsh diff --git a/plugins/laravel4/laravel4.plugin.zsh b/plugins/laravel4/laravel4.plugin.zsh index 4b1022b66..0edc84970 100644 --- a/plugins/laravel4/laravel4.plugin.zsh +++ b/plugins/laravel4/laravel4.plugin.zsh @@ -1,6 +1,6 @@ # Laravel4 basic command completion _laravel4_get_command_list () { - php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' + php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z]+/ { print $1 }' } _laravel4 () { diff --git a/plugins/laravel5/laravel5.plugin.zsh b/plugins/laravel5/laravel5.plugin.zsh new file mode 100644 index 000000000..2afa99317 --- /dev/null +++ b/plugins/laravel5/laravel5.plugin.zsh @@ -0,0 +1,20 @@ +# Laravel5 basic command completion +_laravel5_get_command_list () { + php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z]+/ { print $1 }' +} + +_laravel5 () { + if [ -f artisan ]; then + compadd `_laravel5_get_command_list` + fi +} + +compdef _laravel5 artisan +compdef _laravel5 la5 + +#Alias +alias la5='php artisan' + +alias la5dump='php artisan dump-autoload' +alias la5cache='php artisan cache:clear' +alias la5routes='php artisan routes' From cd36deda23a1f6f53ba910077b22c200fb820299 Mon Sep 17 00:00:00 2001 From: Karsten Kosmala Date: Mon, 16 Feb 2015 12:04:37 +0100 Subject: [PATCH 089/122] added stats command to docker plugin --- plugins/docker/_docker | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 880b6faa6..df8319ea7 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -219,6 +219,10 @@ __start() { __docker_containers } +__stats() { + __docker_containers +} + __stop() { _arguments \ '(-t,--time=)'{-t,--time=}'[Number of seconds to wait for the container to stop before killing it.]' @@ -280,6 +284,7 @@ _1st_arguments=( "save":"Save an image to a tar archive" "search":"Search for an image in the docker index" "start":"Start a stopped container" + "stats":"Display a live stream of one or more containers' resource usage statistics" "stop":"Stop a running container" "tag":"Tag an image into a repository" "top":"Lookup the running processes of a container" @@ -351,6 +356,8 @@ case "$words[1]" in __save ;; search) __search ;; + stats) + __stats ;; start) __start ;; stop) From 6ccf67a077e07bc57cdca6980dcdf346cbd2138e Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Mon, 16 Feb 2015 10:24:22 -0500 Subject: [PATCH 090/122] Do not put explicit dot in $cdpath, since it causes problems on Cygwin due to an underlying zsh bug. --- lib/completion.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index ea6139fde..4b1bb0a62 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -34,7 +34,6 @@ fi # disable named-directories autocompletion zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories -cdpath=(.) # Use caching so that commands like apt and dpkg complete are useable zstyle ':completion::complete:*' use-cache 1 From 46e6e2e23a175ee7e571878a18b4fae03c269b69 Mon Sep 17 00:00:00 2001 From: Roderick Randolph Date: Mon, 16 Feb 2015 12:22:18 -0500 Subject: [PATCH 091/122] Fixes incorrect prompt arrow color Fixes a bug where color of status arrow in prompt is red even when the exit code was zero (or success). This fix correclty returns green arrow on success and red for non-success exit code. --- themes/awesomepanda.zsh-theme | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/themes/awesomepanda.zsh-theme b/themes/awesomepanda.zsh-theme index 411b89837..1c5d06b2d 100644 --- a/themes/awesomepanda.zsh-theme +++ b/themes/awesomepanda.zsh-theme @@ -1,18 +1,16 @@ # the svn plugin has to be activated for this to work. - -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' +local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" +PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%})%{$fg[yellow]%} ✗ %{$reset_color%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}) " - - ZSH_PROMPT_BASE_COLOR="%{$fg_bold[blue]%}" ZSH_THEME_REPO_NAME_COLOR="%{$fg_bold[red]%}" ZSH_THEME_SVN_PROMPT_PREFIX="svn:(" ZSH_THEME_SVN_PROMPT_SUFFIX=")" ZSH_THEME_SVN_PROMPT_DIRTY="%{$fg[red]%} ✘ %{$reset_color%}" -ZSH_THEME_SVN_PROMPT_CLEAN=" " \ No newline at end of file +ZSH_THEME_SVN_PROMPT_CLEAN=" " From 8b5950b812b56a652ce1101f8d4adc569e516160 Mon Sep 17 00:00:00 2001 From: Oleg Voronkovich Date: Sun, 15 Feb 2015 19:12:51 +0300 Subject: [PATCH 092/122] Fix: "\s" is a gawk-specific regexp operator. --- plugins/composer/composer.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 7f70e3d72..86f5be3d0 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -7,7 +7,7 @@ # Composer basic command completion _composer_get_command_list () { - $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^\s*[a-z]+/ { print $1 }' + $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' } _composer_get_required_list () { From 6b29aab37a4984b5f31c4dae3dda1f54860eca51 Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Tue, 17 Feb 2015 07:27:38 +0100 Subject: [PATCH 093/122] Create readme.md --- plugins/ubuntu/readme.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 plugins/ubuntu/readme.md diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md new file mode 100644 index 000000000..5954ead0e --- /dev/null +++ b/plugins/ubuntu/readme.md @@ -0,0 +1,23 @@ +This plugin was created because the aliases in the debian plugin are inconsistent and hard to remember. Also this apt-priority detaction that switched between apt-get and aptitude was dropped to keep it simpler. This plugin uses apt-get for everything but a few things that are only possible with aptitude I guess. Ubuntu does not have aptitude installed by default. + +The aliases for this plugin are easy to remember because they are consistent (the debian plugin is not). + +acs = **a**pt-**c**ache **s**earch +acp = **a**pt-**c**ache **p**olicy + +ag = sudo **a**pt-**g**et +agi = sudo **a**pt-**g**et **i**nstall +agd = sudo **a**pt-**g**et **d**select-upgrade +By now you already can guess almost all aliases + +There are two exeptions since ... +agu = sudo **a**pt-**g**et **u**pdate - we have ... +agug = sudo **a**pt-**g**et **u**pgrade - as the exeptional 4 letter alias for a single command. + +afs = **a**pt-**f**ile **s**earch --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. + +Then there are the 2 other 4 letter aliases for combined commands, that are straight forward and easy to remember. +aguu = sudo **a**pt-**g**et **u**pdate && sudo apt-get **u**pgrade - better then adg or not? +agud = sudo **a**pt-**g**et **u**pdate && sudo apt-get **d**ist-upgrade + +For a full list aliases and the functions just watch the plugins code https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/debian/debian.plugin.zsh, look at the comments if you want to switch from the debian plugin. Ubuntu, Mint and & co users will like the new aar function to install packages from ppas with a single command. From f50b3fe7107d4bb6a9439a4032ac6922b9c0c20b Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Tue, 17 Feb 2015 07:33:45 +0100 Subject: [PATCH 094/122] Create ubuntu plugin, based on debian plugin. * Easy to remember aliases * Simplified * Added aar() function for `sudo apt-add-repository xxxx && apt-get upgrade && apt-get install xxxx` --- plugins/ubuntu/ubuntu.plugin.zsh | 141 +++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 plugins/ubuntu/ubuntu.plugin.zsh diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh new file mode 100644 index 000000000..0211d3374 --- /dev/null +++ b/plugins/ubuntu/ubuntu.plugin.zsh @@ -0,0 +1,141 @@ +# Authors: +# https://github.com/AlexBio +# https://github.com/dbb +# https://github.com/Mappleconfusers +# Nicolas Jonas nextgenthemes.com +# +# Debian, Ubuntu and friends related zsh aliases and functions for zsh + +alias acs='apt-cache search' +compdef _acs acs='apt-cache search' + +alias afs='apt-file search --regexp' +compdef _afs afs='apt-file search --regexp' + +# These are apt-get only +alias ags='apt-get source' # asrc +compdef _ags ags='apt-get source' + +alias acp='apt-cache policy' # app +compdef _acp acp='apt-cache policy' + +# superuser operations ###################################################### +alias afu='sudo apt-file update' +compdef _afu afu='sudo apt-file update' + +alias ppap='sudo ppa-purge' +compdef _ppap ppap='sudo ppa-purge' + +alias ag='sudo apt-get' # age - but without sudo +alias aga='sudo apt-get autoclean' # aac +alias agb='sudo apt-get build-dep' # abd +alias agc='sudo apt-get clean' # adc +alias agd='sudo apt-get dselect-upgrade' # ads +alias agi='sudo apt-get install' # ai +alias agp='sudo apt-get purge' # ap +alias agr='sudo apt-get remove' # ar +alias agu='sudo apt-get update' # ad +alias agud='sudo apt-get update && sudo apt-get dist-upgrade' #adu +alias agug='sudo apt-get upgrade' # ag +alias aguu='sudo apt-get update && sudo apt-get upgrade' #adg + +compdef _ag ag='sudo apt-get' +compdef _aga aga='sudo apt-get autoclean' +compdef _agb agb='sudo apt-get build-dep' +compdef _agc agc='sudo apt-get clean' +compdef _agd agd='sudo apt-get dselect-upgrade' +compdef _agi agi='sudo apt-get install' +compdef _agp agp='sudo apt-get purge' +compdef _agr agr='sudo apt-get remove' +compdef _agu agu='sudo apt-get update' +compdef _agud agud='sudo apt-get update && sudo apt-get dist-upgrade' +compdef _agug agug='sudo apt-get upgrade' +compdef _aguu aguu='sudo apt-get update && sudo apt-get upgrade' + +# Remove ALL kernel images and headers EXCEPT the one in use +alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \ + ?not(~n`uname -r`))' + +# Misc. ##################################################################### +# print all installed packages +alias allpkgs='aptitude search -F "%p" --disable-columns ~i' + +# Create a basic .deb package +alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' + +# apt-add-repository with automatic install/upgrade of the desired package +# Usage: aar ppa:xxxxxx/xxxxxx [packagename] +# If packagename is not given as 2nd arument the function will ask for it and guess the defaupt by taking +# the part after the / from the ppa name wich is sometimes the right name for the package you want to install +aar() { + if [ -n "$2" ]; then + PACKAGE=$2 + else + read "PACKAGE?Type in the package name to install/upgrade with this ppa [${1##*/}]: " + fi + + if [ -z "$PACKAGE" ]; then + PACKAGE=${1##*/} + fi + + sudo apt-add-repository $1 && sudo apt-get update + sudo apt-get install $PACKAGE +} + +# Prints apt history +# Usage: +# apt-history install +# apt-history upgrade +# apt-history remove +# apt-history rollback +# apt-history list +# Based On: http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html +apt-history () { + case "$1" in + install) + zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) + ;; + upgrade|remove) + zgrep --no-filename $1 $(ls -rt /var/log/dpkg*) + ;; + rollback) + zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \ + grep "$2" -A10000000 | \ + grep "$3" -B10000000 | \ + awk '{print $4"="$5}' + ;; + list) + zcat $(ls -rt /var/log/dpkg*) + ;; + *) + echo "Parameters:" + echo " install - Lists all packages that have been installed." + echo " upgrade - Lists all packages that have been upgraded." + echo " remove - Lists all packages that have been removed." + echo " rollback - Lists rollback information." + echo " list - Lists all contains of dpkg logs." + ;; + esac +} + +# Kernel-package building shortcut +kerndeb () { + # temporarily unset MAKEFLAGS ( '-j3' will fail ) + MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' ) + print '$MAKEFLAGS set to '"'$MAKEFLAGS'" + appendage='-custom' # this shows up in $ (uname -r ) + revision=$(date +"%Y%m%d") # this shows up in the .deb file name + + make-kpkg clean + + time fakeroot make-kpkg --append-to-version "$appendage" --revision \ + "$revision" kernel_image kernel_headers +} + +# List packages by size +function apt-list-packages { + dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \ + grep -v deinstall | \ + sort -n | \ + awk '{print $1" "$2}' +} From 3120b9ad458353915f03c1e5df1683b6e0122db2 Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Tue, 17 Feb 2015 07:36:23 +0100 Subject: [PATCH 095/122] Update readme.md --- plugins/ubuntu/readme.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md index 5954ead0e..c05352f3b 100644 --- a/plugins/ubuntu/readme.md +++ b/plugins/ubuntu/readme.md @@ -1,6 +1,4 @@ -This plugin was created because the aliases in the debian plugin are inconsistent and hard to remember. Also this apt-priority detaction that switched between apt-get and aptitude was dropped to keep it simpler. This plugin uses apt-get for everything but a few things that are only possible with aptitude I guess. Ubuntu does not have aptitude installed by default. - -The aliases for this plugin are easy to remember because they are consistent (the debian plugin is not). +This plugin was created because the aliases in the debian plugin are inconsistent and hard to remember. Also this apt-priority detection that switched between apt-get and aptitude was dropped to keep it simpler. This plugin uses apt-get for everything but a few things that are only possible with aptitude I guess. Ubuntu does not have aptitude installed by default. acs = **a**pt-**c**ache **s**earch acp = **a**pt-**c**ache **p**olicy From 660eeb19c7850fd6c5470b40538426d2dbeccfe6 Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Tue, 17 Feb 2015 07:48:01 +0100 Subject: [PATCH 096/122] Update readme.md --- plugins/ubuntu/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md index c05352f3b..e7e610604 100644 --- a/plugins/ubuntu/readme.md +++ b/plugins/ubuntu/readme.md @@ -10,7 +10,7 @@ By now you already can guess almost all aliases There are two exeptions since ... agu = sudo **a**pt-**g**et **u**pdate - we have ... -agug = sudo **a**pt-**g**et **u**pgrade - as the exeptional 4 letter alias for a single command. +agug = sudo **a**pt-**g**et **u**p**g**rade - as the exeptional 4 letter alias for a single command. afs = **a**pt-**f**ile **s**earch --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. From d8b99321383b8d7982506709a07aaa92f5f2d9fc Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Tue, 17 Feb 2015 07:49:55 +0100 Subject: [PATCH 097/122] Update readme.md --- plugins/ubuntu/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md index e7e610604..6366cadca 100644 --- a/plugins/ubuntu/readme.md +++ b/plugins/ubuntu/readme.md @@ -18,4 +18,4 @@ Then there are the 2 other 4 letter aliases for combined commands, that are stra aguu = sudo **a**pt-**g**et **u**pdate && sudo apt-get **u**pgrade - better then adg or not? agud = sudo **a**pt-**g**et **u**pdate && sudo apt-get **d**ist-upgrade -For a full list aliases and the functions just watch the plugins code https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/debian/debian.plugin.zsh, look at the comments if you want to switch from the debian plugin. Ubuntu, Mint and & co users will like the new aar function to install packages from ppas with a single command. +For a full list aliases and the functions just watch the plugins code https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/ubuntu/ubuntu.plugin.zsh, look at the comments if you want to switch from the debian plugin. Ubuntu, Mint and & co users will like the new aar function to install packages from ppas with a single command. From 099246dd9e74f7a2488fe7c51fe8c40502295def Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Wed, 18 Feb 2015 14:25:15 -0500 Subject: [PATCH 098/122] PLUGINS: vi-mode: allow ctrl-p, ctrl-n for history navigation Allow ctrl-p, ctrl-n for history navigation while in insert mode. --- plugins/vi-mode/vi-mode.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index f2745b409..45ec22a09 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -34,6 +34,10 @@ bindkey -v autoload -Uz edit-command-line bindkey -M vicmd 'v' edit-command-line +# allow ctrl-p, ctrl-n for navigate history (standard behaviour) +bindkey '^P' up-history +bindkey '^N' down-history + # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" From 33900dfd328ea21954cc7772af21e5d44ea71f3f Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Wed, 18 Feb 2015 14:29:44 -0500 Subject: [PATCH 099/122] PLUGINS: vi-mode: allow ctrl-h, ctrl-?, ctrl-w for char and word deletion Allow ctrl-h, ctrl-?, ctrl-w after changes in normal mode. --- plugins/vi-mode/vi-mode.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 45ec22a09..1de8bf91a 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -38,6 +38,11 @@ bindkey -M vicmd 'v' edit-command-line bindkey '^P' up-history bindkey '^N' down-history +# allow ctrl-h, ctrl-w, ctrl-? for char and word deletion (standard behaviour) +bindkey '^?' backward-delete-char +bindkey '^h' backward-delete-char +bindkey '^w' backward-kill-word + # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" From 152a751342d678a90dd8597e512c1d07f72e9477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Feb 2015 15:48:29 +0100 Subject: [PATCH 100/122] Revert usage of install.ohmyz.sh URL, until HTTPS support. This reverts commit b6cbba9dfee5985232b473e94595c2fb1ab83715. --- README.textile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.textile b/README.textile index 09cff2135..d09e6b4bd 100644 --- a/README.textile +++ b/README.textile @@ -18,11 +18,11 @@ You can install this via the command-line with either @curl@ or @wget@. h4. via @curl@: -@curl -L http://install.ohmyz.sh | sh@ +@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh@ h4. via @wget@: -@wget --no-check-certificate http://install.ohmyz.sh -O - | sh@ +@wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh@ h4. *Optionally*, change the install directory: From e10470f6a320f37a07a229c65c5c7a9646477992 Mon Sep 17 00:00:00 2001 From: wajdi Date: Thu, 19 Feb 2015 10:34:51 -0500 Subject: [PATCH 101/122] Adding ssh-config to vagrant plugin autocomplete. Was missing --- plugins/vagrant/_vagrant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index 0c82acd42..76f80b0d7 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -113,7 +113,7 @@ case $state in (box) __vagrant-box ;; - (up|provision|package|destroy|reload|ssh|halt|resume|status) + (up|provision|package|destroy|reload|ssh|ssh-config|halt|resume|status) _arguments ':feature:__vm_list' esac ;; From 8ce1245770a0d9a8f738362bbf749e918b48d7e9 Mon Sep 17 00:00:00 2001 From: Craig Paterson Date: Thu, 19 Feb 2015 17:55:32 +0200 Subject: [PATCH 102/122] added the 'mix local.hex' command to plugin completions --- plugins/mix/_mix | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/mix/_mix b/plugins/mix/_mix index 602f5ffa0..b7c982e0a 100644 --- a/plugins/mix/_mix +++ b/plugins/mix/_mix @@ -21,6 +21,7 @@ _1st_arguments=( 'local.install:Install a task or an archive locally' 'local.rebar:Install rebar locally' 'local.uninstall:Uninstall local tasks or archives' + 'local.hex:Install Hex locally' 'new:Creates a new Elixir project' 'run:Run the given file or expression' "test:Run a project's tests" From 393676387a99683f2a5ccf44557d874ffd272d63 Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Thu, 19 Feb 2015 19:37:54 +0100 Subject: [PATCH 103/122] Markdown bolds to capital letters --- plugins/ubuntu/readme.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md index 6366cadca..17c805a44 100644 --- a/plugins/ubuntu/readme.md +++ b/plugins/ubuntu/readme.md @@ -1,21 +1,21 @@ This plugin was created because the aliases in the debian plugin are inconsistent and hard to remember. Also this apt-priority detection that switched between apt-get and aptitude was dropped to keep it simpler. This plugin uses apt-get for everything but a few things that are only possible with aptitude I guess. Ubuntu does not have aptitude installed by default. -acs = **a**pt-**c**ache **s**earch -acp = **a**pt-**c**ache **p**olicy +acs = Apt-Cache Search +acp = Apt-Cache Policy -ag = sudo **a**pt-**g**et -agi = sudo **a**pt-**g**et **i**nstall -agd = sudo **a**pt-**g**et **d**select-upgrade +ag = sudo Apt-Get +agi = sudo Apt-Get Install +agd = sudo Apt-Get Dselect-upgrade By now you already can guess almost all aliases There are two exeptions since ... -agu = sudo **a**pt-**g**et **u**pdate - we have ... -agug = sudo **a**pt-**g**et **u**p**g**rade - as the exeptional 4 letter alias for a single command. +agu = sudo Apt-Get Update - we have ... +agug = sudo Apt-Get UpGrade - as the exeptional 4 letter alias for a single command. -afs = **a**pt-**f**ile **s**earch --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. +afs = Apt-F*ile Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. Then there are the 2 other 4 letter aliases for combined commands, that are straight forward and easy to remember. -aguu = sudo **a**pt-**g**et **u**pdate && sudo apt-get **u**pgrade - better then adg or not? -agud = sudo **a**pt-**g**et **u**pdate && sudo apt-get **d**ist-upgrade +aguu = sudo Apt-Get Update && sudo apt-get Upgrade - better then adg or not? +agud = sudo Apt-Get Update && sudo apt-get Dist-upgrade For a full list aliases and the functions just watch the plugins code https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/ubuntu/ubuntu.plugin.zsh, look at the comments if you want to switch from the debian plugin. Ubuntu, Mint and & co users will like the new aar function to install packages from ppas with a single command. From aff01d920e36231c59f3d8c43ffdc8564019b818 Mon Sep 17 00:00:00 2001 From: nextgenthemes Date: Thu, 19 Feb 2015 19:43:31 +0100 Subject: [PATCH 104/122] Update readme.md --- plugins/ubuntu/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md index 17c805a44..c9ef61f4e 100644 --- a/plugins/ubuntu/readme.md +++ b/plugins/ubuntu/readme.md @@ -12,7 +12,7 @@ There are two exeptions since ... agu = sudo Apt-Get Update - we have ... agug = sudo Apt-Get UpGrade - as the exeptional 4 letter alias for a single command. -afs = Apt-F*ile Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. +afs = Apt-File Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. Then there are the 2 other 4 letter aliases for combined commands, that are straight forward and easy to remember. aguu = sudo Apt-Get Update && sudo apt-get Upgrade - better then adg or not? From bc8abe5ea26aa031395c754e3e9710dcc62dd0f0 Mon Sep 17 00:00:00 2001 From: Brian Derr Date: Thu, 19 Feb 2015 13:30:50 -0800 Subject: [PATCH 105/122] Verify zle is active before trying to reset-prompt. --- plugins/vi-mode/vi-mode.plugin.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index f2745b409..ac9233290 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -17,8 +17,12 @@ function zle-keymap-select zle-line-init zle-line-finish { # Ensure that the prompt is redrawn when the terminal size changes. TRAPWINCH() { if [[ -o zle ]]; then - zle reset-prompt - zle -R + # Verify that zle is active before trying to reset-prompt. + zle + if [[ $? -eq 0 ]]; then + zle reset-prompt + zle -R + fi fi } From 0a99ca0df0f53e546c9c6ac5240e38f3a2dd2c3b Mon Sep 17 00:00:00 2001 From: Murilo Opsfelder Araujo Date: Fri, 20 Feb 2015 15:17:00 -0200 Subject: [PATCH 106/122] plugins: mercurial: Update the order prompt vars are displayed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a user sets ZSH_THEME_HG_PROMPT_* as the following, he ends up with %{$reset_color%} resetting the bold style of last character ")" because _SUFFIX was expanded before calling hg_dirty(): ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[blue]%}hg:(%{$fg[white]%}" ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_HG_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}" ZSH_THEME_HG_PROMPT_CLEAN="%{$fg[blue]%})" With this patch, the variable ZSH_THEME_HG_PROMPT_SUFFIX is lastly displayed, following the same order as in git_prompt_info(), i.e. . --- plugins/mercurial/mercurial.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index ed4d23713..86200ccf6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -35,7 +35,7 @@ function hg_prompt_info { if [ $(in_hg) ]; then _DISPLAY=$(hg_get_branch_name) echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\ -$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR" +$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR" unset _DISPLAY fi } From 8f1741d56c21f1daf50c1e1f76a5eea37106e239 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sat, 21 Feb 2015 16:07:27 -0800 Subject: [PATCH 107/122] Moving README to markdown... and taking first steps at reorganizing it. Also updated the LICENSE to reflect 2015. --- MIT-LICENSE.txt | 2 +- README.markdown | 175 ++++++++++++++++++++++++++++++++++++++++++++++++ README.textile | 111 ------------------------------ 3 files changed, 176 insertions(+), 112 deletions(-) create mode 100644 README.markdown delete mode 100644 README.textile diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt index 6eb8aab34..dfbd90035 100644 --- a/MIT-LICENSE.txt +++ b/MIT-LICENSE.txt @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2009-2014 Robby Russell and contributors (see https://github.com/robbyrussell/oh-my-zsh/contributors) +Copyright (c) 2009-2015 Robby Russell and contributors (see 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 diff --git a/README.markdown b/README.markdown new file mode 100644 index 000000000..1a8e6f8d0 --- /dev/null +++ b/README.markdown @@ -0,0 +1,175 @@ +![Oh My Zsh](https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png) + + +Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. That sounds boring. Let's try this again. + +Oh My Zsh is a way of life. Once installed, your terminal prompt will become the talk of the town. Everytime you begin interacting with your command prompt, you'll begin to take advantage of the hundreds of bundled plugins and pretty 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 always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often. + +To learn more, visit http://ohmyz.sh and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on twitter. + +## Getting Started + + +### Pre-requisites + +__Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._ + +* Unix-based operating system (Mac OS X or Linux) +* [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent) + * This is commonly pre-installed. (`zsh --version` to confirm) +* `curl` or `wget` 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 + +`curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh` + +#### via wget + +`wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh` + +## Using Oh My Zsh + +### Plugins + +Oh My Zsh comes with a shit load 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 + +If you spot a plugin (or several) that you would like to use with Oh My Zsh, you will need to edit the `~/.zshrc` file. Once you open it with your favorite editor, you'll see a spot to list all the plugins that you'd like Oh My Zsh to load in initialization. + +For example, this line might begin to look like... + +`plugins=(git bundler osx rake 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 far 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 right (for him)._ + +Once you find a theme that you want to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like: + +`ZSH_THEME="robbyrussell"` + +To use a different theme, simple change the value to match the name of your desired theme. For example: + +`ZSH_THEME="agnoster"` (this is one of the fancy ones) + +Open up a new terminal window and your prompt should look something like... + +## Advanced Topics + +If you're the type that likes to get their hands dirty... these sections might resonate. + +### Advanced Installation + +For those who want to install this manually and/or set custom paths. + +#### 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: + +`curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh` + +#### Manual Installation + +##### 1. Clone the repository: + +`git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh` + +##### 2. *Optionally*, backup your existing @~/.zshrc@ file: + +`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 included for you. + +`cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc` + +##### 4. Change your default 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 `abcyzeae.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`: + +`DISABLE_UPDATE_PROMPT=true` + +To disable automatic upgrades, set the following in your `~/.zshrc`: + +`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: + +`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](http://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 fork the project and add one in there – you can let people know how to grab it from there. + +## 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 have an [ohmyzsh](https://twitter.com/ohmyzsh) account. You should follow it. + +## Merchandise + +We have [stickers](http://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](http://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](https://github.com/robbyrussell/oh-my-zsh/blob/master/MIT-LICENSE.txt). diff --git a/README.textile b/README.textile deleted file mode 100644 index d09e6b4bd..000000000 --- a/README.textile +++ /dev/null @@ -1,111 +0,0 @@ -!https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png! - -@oh-my-zsh@ is an open source, community-driven framework for managing your "Zsh":http://www.zsh.org/ configuration. - -It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout… - -bq. "OH MY ZSHELL!" - -h2. Setup - -@oh-my-zsh@ should work with any recent release of "Zsh":http://www.zsh.org/. The minimum recommended version is *4.3.9*. - -If not already installed, you can install "Zsh":http://www.zsh.org/ using the command-line. - -h3. The automatic installer… do you trust me? - -You can install this via the command-line with either @curl@ or @wget@. - -h4. via @curl@: - -@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh@ - -h4. via @wget@: - -@wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh@ - -h4. *Optionally*, change the install directory: - -The default location is @~/.oh-my-zsh@ (hidden in your home directory). - -You can 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: - -@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh@ - -h3. The manual way - -1. Clone the repository: - -@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@ - -2. *Optionally*, backup your existing @~/.zshrc@ file: - -@cp ~/.zshrc ~/.zshrc.orig@ - -3. Create a new "Zsh":http://www.zsh.org/ config file by copying the "Zsh":http://www.zsh.org/ template we've provided: - -@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@ - -4. Set "Zsh":http://www.zsh.org/ as your default shell: - -@chsh -s /bin/zsh@ - -5. Start or restart "Zsh":http://www.zsh.org/ by opening a new command-line window. - -h3. Problems? - -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@. - -h2. Usage - -* enable the plugins you want in your @~/.zshrc@ (take a look at the @plugins/@ directory and the "wiki":https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins to see what's available) -** example: @plugins=(git osx ruby)@ -* theme support: change the @ZSH_THEME@ environment variable in @~/.zshrc@ -** take a look at the @themes/@ directory and the "wiki":https://wiki.github.com/robbyrussell/oh-my-zsh/themes to see what comes bundled with @oh-my-zsh@ -* & much, much more… take a look at the @lib/@ directory to see what @oh-my-zsh@ has to offer… - -h2. Useful - -The "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty useful for tips. - -h3. Customization - -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 @*.plugin.zsh@ file in the @custom/plugins/@ directory and then enable this plugin (see '"Usage":https://github.com/robbyrussell/oh-my-zsh#usage' above). - -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/@. - -h3. Updates - -By default you will be prompted to check for upgrades. If you would like @oh-my-zsh@ to automatically upgrade itself without prompting you, set the following in your @~/.zshrc@: - -@DISABLE_UPDATE_PROMPT=true@ - -To disable upgrades entirely, set the following in your @~/.zshrc@: - -@DISABLE_AUTO_UPDATE=true@ - -To upgrade directly from the command-line, just run @upgrade_oh_my_zsh@. - -h3. Uninstalling - -If you want to uninstall @oh-my-zsh@, just run @uninstall_oh_my_zsh@ from the command-line and it'll remove itself and revert you to @bash@ (or your previous "Zsh":http://www.zsh.org/ configuration). - -h2. Help out! - -I'm far from being a "Zsh":http://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! - -h3. (Don't) send us your theme (for now)! - --I'm hoping to collect a bunch of themes – you can see existing ones in the @themes/@ directory.- - -We have enough themes for the time being. Please fork the project and add on in there – you can let people know how to grab it from there. - -h2. Contributors - -This project wouldn't exist without all of our awesome users and contributors: "view our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors - -Thank you so much! From caac64cf37912f37d85c7eb8fa6e053ceb7d2151 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sat, 21 Feb 2015 16:11:57 -0800 Subject: [PATCH 108/122] Few copy edits to README --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 1a8e6f8d0..40f5e661c 100644 --- a/README.markdown +++ b/README.markdown @@ -3,14 +3,14 @@ Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. That sounds boring. Let's try this again. -Oh My Zsh is a way of life. Once installed, your terminal prompt will become the talk of the town. Everytime you begin interacting with your command prompt, you'll begin to take advantage of the hundreds of bundled plugins and pretty 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 always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often. +__Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interace with your command prompt, you'll be able take advantage of the hundreds of bundled plugins and pretty 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 always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often. To learn more, visit http://ohmyz.sh and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on twitter. ## Getting Started -### Pre-requisites +### Prerequisites __Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._ From 5cd31822c72964b19b6c1938694697726b2ac3b9 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sat, 21 Feb 2015 16:13:53 -0800 Subject: [PATCH 109/122] Missed a few textile formatting spots --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 40f5e661c..8fa0de46b 100644 --- a/README.markdown +++ b/README.markdown @@ -21,7 +21,7 @@ __Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._ ### 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@. +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 From a1de65e3595c9bc3438b98d9ca671c2890a4b613 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sat, 21 Feb 2015 16:19:22 -0800 Subject: [PATCH 110/122] Removing --no-check-certificate from README --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 8fa0de46b..25bcdbe6e 100644 --- a/README.markdown +++ b/README.markdown @@ -29,7 +29,7 @@ Oh My Zsh is installed by running one of the following commands in your terminal #### via wget -`wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh` +`wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh` ## Using Oh My Zsh From d7837c6041b1099982e3f278b50e8868b8b30ff9 Mon Sep 17 00:00:00 2001 From: Brian Derr Date: Sat, 21 Feb 2015 18:08:54 -0800 Subject: [PATCH 111/122] Shorten the zle check and reset-prompt into one line. --- plugins/vi-mode/vi-mode.plugin.zsh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index ac9233290..80df97d61 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -16,14 +16,7 @@ function zle-keymap-select zle-line-init zle-line-finish { # Ensure that the prompt is redrawn when the terminal size changes. TRAPWINCH() { - if [[ -o zle ]]; then - # Verify that zle is active before trying to reset-prompt. - zle - if [[ $? -eq 0 ]]; then - zle reset-prompt - zle -R - fi - fi + zle && { zle reset-prompt; zle -R } } zle -N zle-line-init From aa16e18644b3fee0b3cf0320692d6566d539cdd0 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 22 Feb 2015 09:29:31 -0800 Subject: [PATCH 112/122] Updating histoby-substring-search README to instruct user to load plugins via .zshrc. Closes #1832. --- plugins/history-substring-search/README | 7 ------- plugins/history-substring-search/README.markdown | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 plugins/history-substring-search/README create mode 100644 plugins/history-substring-search/README.markdown diff --git a/plugins/history-substring-search/README b/plugins/history-substring-search/README deleted file mode 100644 index be11adf76..000000000 --- a/plugins/history-substring-search/README +++ /dev/null @@ -1,7 +0,0 @@ -To activate this script, load it into an interactive ZSH session: - - % source history-substring-search.zsh - -See the "history-substring-search.zsh" file for more information: - - % sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more diff --git a/plugins/history-substring-search/README.markdown b/plugins/history-substring-search/README.markdown new file mode 100644 index 000000000..143b813a1 --- /dev/null +++ b/plugins/history-substring-search/README.markdown @@ -0,0 +1,7 @@ +To activate this script, please include it the `plugins` variable within `~/.zshrc` + + `plugins=(git history-substring-search.zsh)` + +See the "history-substring-search.zsh" file for more information: + + `sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more` From ce607d3fcb4c730c991563b4c62725cd89ce0ced Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 22 Feb 2015 09:51:22 -0800 Subject: [PATCH 113/122] Adding keystrong return to oascrupt per suggestion by @enzzzy. Fixes #2913. --- plugins/osx/osx.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index d366f1fc8..d0f9f009a 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -35,6 +35,7 @@ EOF set current_session to current session tell current_session write text "${command}" + keystroke return end tell end tell end tell From 43bdea4c2fab0ff313a28e2b45274a90c8cc3c76 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 22 Feb 2015 09:57:42 -0800 Subject: [PATCH 114/122] Removing say() function in perl plugin so that it doesn't overwrite OSX comand line utility. Closes #2562 --- plugins/perl/perl.plugin.zsh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh index f94c4195d..1fbf7c122 100644 --- a/plugins/perl/perl.plugin.zsh +++ b/plugins/perl/perl.plugin.zsh @@ -27,7 +27,7 @@ alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/pe # Functions ################################################################# -# newpl - creates a basic Perl script file and opens it with $EDITOR +# newpl - creates a basic Perl script file and opens it with $EDITOR newpl () { # set $EDITOR to 'vim' if it is undefined [[ -z $EDITOR ]] && EDITOR=vim @@ -54,9 +54,3 @@ pgs() { # [find] [replace] [filename] prep() { # [pattern] [filename unless STDOUT] perl -nle 'print if /'"$1"'/;' $2 } - -# say - append a newline to 'print' -say() { - print "$1\n" -} - From 7fc47e7ebcff3ec1e01399d32752451f14e3de6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=A6tzke=20Tandrup?= Date: Sun, 22 Feb 2015 22:14:37 +0100 Subject: [PATCH 115/122] Fixing spaces in title and message given to bgnotify on OS X --- plugins/bgnotify/bgnotify.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 259d27424..5ccead3b8 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -34,7 +34,7 @@ bgnotify () { if hash notify-send 2>/dev/null; then #ubuntu! notify-send $1 $2 elif hash terminal-notifier 2>/dev/null; then #osx - terminal-notifier -message $2 -title $1 + terminal-notifier -message "$2" -title "$1" elif hash growlnotify 2>/dev/null; then #osx growl growlnotify -m $1 $2 elif hash notifu 2>/dev/null; then #cygwyn support! From 8b45118f266fd5422f80a7868add48234adc1d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ordon?= Date: Mon, 23 Feb 2015 11:43:19 +0000 Subject: [PATCH 116/122] Update Grunt plugin to 0.1.2 --- plugins/grunt/grunt.plugin.zsh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh index 48f6cb5a2..3f9695177 100644 --- a/plugins/grunt/grunt.plugin.zsh +++ b/plugins/grunt/grunt.plugin.zsh @@ -1,4 +1,5 @@ #compdef grunt +#autoload # ----------------------------------------------------------------------------- # _grunt # @@ -8,11 +9,11 @@ # # ----------------------------------------------------------------------------- # -# Version : 0.1.0 +# Version : 0.1.2 # Author : Yonchu # License : MIT License # Repository : https://github.com/yonchu/grunt-zsh-completion -# Last Change : 22 Jul 2013. +# Last Change : 20 Aug 2014. # # Copyright (c) 2013 Yonchu. # @@ -46,7 +47,7 @@ # # ----------------------------------------------------------------------------- -function _grunt() { +function __grunt() { local curcontext="$curcontext" update_policy state local show_grunt_path update_msg gruntfile opts tasks @@ -113,7 +114,7 @@ function _grunt() { # The cache variable name: __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks function __grunt_update_cache() { # TODO - local version='0.1.0' + local version='0.1.2' local is_updating=0 local gruntfile="$1" local grunt_info no_update_options cache_path @@ -177,6 +178,7 @@ function __grunt_get_tasks() { | grep 'Available tasks' -A 100 \ | grep '^ ' \ | sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' \ + | sed -e 's/:/\\:/g' \ | sed -e 's/ /:/' } @@ -250,4 +252,4 @@ function __grunt_caching_policy() { (( $#oldp )) } -compdef _grunt grunt +compdef __grunt grunt \ No newline at end of file From 0dc7b5c049b9cfb747b48d13b32799266b231caf Mon Sep 17 00:00:00 2001 From: uberspot Date: Thu, 12 Feb 2015 15:08:19 +0200 Subject: [PATCH 117/122] add nmap plugin with some aliases for scan modes --- plugins/nmap/README.md | 32 ++++++++++++++++++++++++++++++++ plugins/nmap/nmap.plugin.zsh | 28 ++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/nmap/README.md create mode 100644 plugins/nmap/nmap.plugin.zsh diff --git a/plugins/nmap/README.md b/plugins/nmap/README.md new file mode 100644 index 000000000..8bb8e0648 --- /dev/null +++ b/plugins/nmap/README.md @@ -0,0 +1,32 @@ +# Nmap aliases plugin + +Adds some useful aliases for nmap similar to the profiles in zenmap. + +Nmap options are: + * -sS - TCP SYN scan + * -v - verbose + * -T1 - timing of scan. Options are paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4), and insane (5) + * -sF - FIN scan (can sneak through non-stateful firewalls) + * -PE - ICMP echo discovery probe + * -PP - timestamp discovery probe + * -PY - SCTP init ping + * -g - use given number as source port + * -A - enable OS detection, version detection, script scanning, and traceroute (aggressive) + * -O - enable OS detection + * -sA - TCP ACK scan + * -F - fast scan + * --script=vulscan - also access vulnerabilities in target + +## Aliases explained + + * nmap_open_ports - scan for open ports on target + * nmap_list_interfaces - list all network interfaces on host where the command runs + * nmap_slow - slow scan that avoids to spam the targets logs + * nmap_fin - scan to see if hosts are up with TCP FIN scan + * nmap_full - aggressive full scan that scans all ports, tries to determine OS and service versions + * nmap_check_for_firewall - TCP ACK scan to check for firewall existence + * nmap_ping_through_firewall - Host discovery with SYN and ACK probes instead of just pings to avoid firewall + restrictions + * nmap_fast - Fast scan of the top 300 popular ports + * nmap_detect_versions - detects versions of services and OS, runs on all ports + * nmap_check_for_vulns - uses vulscan script to check target services for vulnerabilities diff --git a/plugins/nmap/nmap.plugin.zsh b/plugins/nmap/nmap.plugin.zsh new file mode 100644 index 000000000..f3603f622 --- /dev/null +++ b/plugins/nmap/nmap.plugin.zsh @@ -0,0 +1,28 @@ +# Some useful nmap aliases for scan modes + +# Nmap options are: +# -sS - TCP SYN scan +# -v - verbose +# -T1 - timing of scan. Options are paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4), and insane (5) +# -sF - FIN scan (can sneak through non-stateful firewalls) +# -PE - ICMP echo discovery probe +# -PP - timestamp discovery probe +# -PY - SCTP init ping +# -g - use given number as source port +# -A - enable OS detection, version detection, script scanning, and traceroute (aggressive) +# -O - enable OS detection +# -sA - TCP ACK scan +# -F - fast scan +# --script=vulscan - also access vulnerabilities in target + +alias nmap_open_ports="nmap --open" +alias nmap_list_interfaces="nmap --iflist" +alias nmap_slow="nmap -sS -v -T1" +alias nmap_fin="nmap -sF -v" +alias nmap_full="nmap -sS -T4 -PE -PP -PS80,443 -PY -g 53 -A -p1-65535 -v" +alias nmap_check_for_firewall="nmap -sA -p1-65535 -v -T4" +alias nmap_ping_through_firewall="nmap -PS -PA" +alias nmap_fast="nmap -F -T5 --top-ports 300" +alias nmap_detect_versions="nmap -sV -p1-65535 -O --osscan-guess -T4 -Pn" +alias nmap_check_for_vulns="nmap --script=vulscan" + From 1308515d1c2014a52aca3ac952a0172d9961eee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Sun, 22 Feb 2015 19:15:33 +0000 Subject: [PATCH 118/122] Re-order OS detection if..else statement. This patch will re-order the if statements when checking what operating system the user is running. This is useful for people that already have a `notify-send` binary in their $PATH but are running OSX. An example of such requirements is anyone running `vagrant-notify` is required to have a `notify-send` binary on their $PATH. See [link](https://github.com/fgrehm/vagrant-notify#os-x). --- plugins/bgnotify/bgnotify.plugin.zsh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 5ccead3b8..14ca4c817 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -1,6 +1,5 @@ #!/usr/bin/env zsh - ## setup ## [[ -o interactive ]] || return #interactive only! @@ -21,22 +20,22 @@ if ! (type bgnotify_formatted | grep -q 'function'); then fi currentWindowId () { - if hash notify-send 2>/dev/null; then #ubuntu! - xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' - elif hash osascript 2>/dev/null; then #osx + 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; then #ubuntu! + xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' else echo $EPOCHSECONDS #fallback for windows fi } bgnotify () { - if hash notify-send 2>/dev/null; then #ubuntu! - notify-send $1 $2 - elif hash terminal-notifier 2>/dev/null; then #osx + if hash terminal-notifier 2>/dev/null; then #osx terminal-notifier -message "$2" -title "$1" elif hash growlnotify 2>/dev/null; then #osx growl growlnotify -m $1 $2 + elif hash notify-send 2>/dev/null; then #ubuntu! + notify-send $1 $2 elif hash notifu 2>/dev/null; then #cygwyn support! notifu /m "$2" /p "$1" fi From 2e1b964c002aa193fef733d52da252e2e11ca2ef Mon Sep 17 00:00:00 2001 From: wyldphyre Date: Tue, 24 Feb 2015 20:58:50 +0800 Subject: [PATCH 119/122] Add README.md file --- plugins/sublime/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/sublime/README.md diff --git a/plugins/sublime/README.md b/plugins/sublime/README.md new file mode 100644 index 000000000..75b2d9dc1 --- /dev/null +++ b/plugins/sublime/README.md @@ -0,0 +1,15 @@ +## sublime + +Plugin for Sublime Text, a cross platform text and code editor, available for Linux, Mac OS X, and Windows. + +### Requirements + + * [Sublime Text](http://www.sublimetext.com/) + +### Usage + + * If `st` command is called without an argument, launch Sublime Text + + * If `st` is passed a directory, `cd` to it and open it in Sublime Text + + * If `st` is passed a file, open it in Sublime Text \ No newline at end of file From 01ec37e5f87281e91b174d068a43d0ce6e43944e Mon Sep 17 00:00:00 2001 From: wyldphyre Date: Tue, 24 Feb 2015 21:05:58 +0800 Subject: [PATCH 120/122] Added missing 'stt' command alias --- plugins/sublime/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/README.md b/plugins/sublime/README.md index 75b2d9dc1..e38cf66dc 100644 --- a/plugins/sublime/README.md +++ b/plugins/sublime/README.md @@ -12,4 +12,6 @@ Plugin for Sublime Text, a cross platform text and code editor, available for Li * If `st` is passed a directory, `cd` to it and open it in Sublime Text - * If `st` is passed a file, open it in Sublime Text \ No newline at end of file + * If `st` is passed a file, open it in Sublime Text + + * if `stt` command is called, it is equivalent to `st .`, opening the current folder in Sublime Text \ No newline at end of file From a414b5e3d906bb13062ca9ec19118c01ac44dc2a Mon Sep 17 00:00:00 2001 From: XerWandeRer Date: Mon, 16 Mar 2015 13:55:35 +0800 Subject: [PATCH 121/122] Update _adb Added support for `tcpip` option --- plugins/adb/_adb | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/adb/_adb b/plugins/adb/_adb index 4c998172d..22089581a 100644 --- a/plugins/adb/_adb +++ b/plugins/adb/_adb @@ -21,6 +21,7 @@ _1st_arguments=( 'push:copy file/dir to device' 'shell:run remote shell interactively' 'sync:copy host->device only if changed (-l means list but dont copy)' +‘tcpip:restart host adb in tcpip mode’ 'uninstall:remove this app package from the device' 'version:show version num' ) From 0dde9943c9cc90c720a33e6713450d96cf210777 Mon Sep 17 00:00:00 2001 From: Abner Chen Date: Tue, 17 Mar 2015 03:26:44 +0800 Subject: [PATCH 122/122] [Modify] Update django.plugin.zsh for Django 1.7.6 --- plugins/django/django.plugin.zsh | 263 +++++++++++++++++++++++++------ 1 file changed, 212 insertions(+), 51 deletions(-) diff --git a/plugins/django/django.plugin.zsh b/plugins/django/django.plugin.zsh index 2e9ce1c52..35865a692 100644 --- a/plugins/django/django.plugin.zsh +++ b/plugins/django/django.plugin.zsh @@ -2,59 +2,114 @@ typeset -ga nul_args nul_args=( + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' '--settings=-[the Python path to a settings module.]:file:_files' - '--pythonpath=-[a directory to add to the Python path.]::directory:_directories' + '--pythonpath=-[a directory to add to the Python path.]:directory:_directories' '--traceback[print traceback on exception.]' + "--no-color[Don't colorize the command output.]" "--version[show program's version number and exit.]" {-h,--help}'[show this help message and exit.]' ) -_managepy-adminindex(){ +typeset -ga start_args +start_args=( + '--template=-[The path or URL to load the template from.]:directory:_directories' + '--extension=-[The file extension(s) to render (default: "py").]' + '--name=-[The file name(s) to render.]:file:_files' +) + +typeset -ga db_args +db_args=( + '--database=-[Nominates a database. Defaults to the "default" database.]' +) + +typeset -ga noinput_args +noinput_args=( + '--noinput[tells Django to NOT prompt the user for input of any kind.]' +) + +typeset -ga no_init_data_args +no_init_data_args=( + '--no-initial-data[Tells Django not to load any initial data after database synchronization.]' +) + +typeset -ga tag_args +tag_args=( + '--tag=-[Run only checks labeled with given tag.]' + '--list-tags[List available tags.]' +) + +_managepy-check(){ _arguments -s : \ - $nul_args \ - '*::directory:_directories' && ret=0 + $tag_args \ + $nul_args && ret=0 +} + +_managepy-changepassword(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 } _managepy-createcachetable(){ _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-createsuperuser(){ + _arguments -s : \ + '--username=-[Specifies the login for the superuser.]' \ + '--email=-[Specifies the email for the superuser.]' \ + $noinput_args \ + $db_args \ $nul_args && ret=0 } _managepy-collectstatic(){ _arguments -s : \ - '--link=-[Create a symbolic link to each file instead of copying.]:' \ - '--noinput=-[Do NOT prompt the user for input of any kind.]:' \ - '--no-post-process=-[Do NOT post process collected files.]:' \ - '--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]:' \ - '--dry-run=-[Do everything except modify the filesystem.]:' \ - '--clear=-[Clear the existing files using the storage before trying to copy or link the original file.]:' \ - '--link=-[Create a symbolic link to each file instead of copying.]:' \ - '--no-default-ignore=-[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]:' \ + '--link[Create a symbolic link to each file instead of copying.]' \ + '--no-post-process[Do NOT post process collected files.]' \ + '--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]' \ + '--dry-run[Do everything except modify the filesystem.]' \ + '--clear[Clear the existing files using the storage before trying to copy or link the original file.]' \ + '--link[Create a symbolic link to each file instead of copying.]' \ + '--no-default-ignore[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]' \ + $noinput_args \ $nul_args && ret=0 } _managepy-dbshell(){ _arguments -s : \ + $db_args \ $nul_args && ret=0 } _managepy-diffsettings(){ _arguments -s : \ + "--all[Display all settings, regardless of their value.]" $nul_args && ret=0 } _managepy-dumpdata(){ _arguments -s : \ - '--format=-[specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ - '--indent=-[specifies the indent level to use when pretty-printing output.]:' \ + '--format=-[Specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ + '--indent=-[Specifies the indent level to use when pretty-printing output.]' \ + '--exclude=-[An app_label or app_label.ModelName to exclude (use multiple --exclude to exclude multiple apps/models).]' \ + '--natural-foreign[Use natural foreign keys if they are available.]' \ + '--natural-primary[Use natural primary keys if they are available.]' \ + "--all[Use Django's base manager to dump all models stored in the database.]" \ + '--pks=-[Only dump objects with given primary keys.]' \ + $db_args \ $nul_args \ '*::appname:_applist' && ret=0 } _managepy-flush(){ _arguments -s : \ - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ - '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + $no_init_data_args \ + $db_args \ + $noinput_args \ $nul_args && ret=0 } @@ -75,32 +130,61 @@ _managepy_cmds(){ _managepy-inspectdb(){ _arguments -s : \ + $db_args \ $nul_args && ret=0 } _managepy-loaddata(){ _arguments -s : \ - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '--ignorenonexistent[Ignores entries in the serialized data for fields that do not currently exist on the model.]' \ + '--app=-[Only look for fixtures in the specified app.]:appname:_applist' \ '*::file:_files' \ + $db_args \ $nul_args && ret=0 } -_managepy-reset(){ +_managepy-makemessages(){ _arguments -s : \ - '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ - '*::appname:_applist' \ + '--locale=-[Creates or updates the message files for the given locale(s) (e.g. pt_BR).]' \ + '--domain=-[The domain of the message files (default: "django").]' \ + '--all[Updates the message files for all existing locales.]' \ + '--extension=-[The file extension(s) to examine (default: "html,txt", or "js" if the domain is "djangojs").]' \ + '--symlinks[Follows symlinks to directories when examining source code and templates for translation strings.]' \ + '--ignore=-[Ignore files or directories matching this glob-style pattern.]' \ + "--no-default-ignore[Don't ignore the common glob-style patterns 'CVS', '.*', '*~' and '*.pyc'.]" \ + "--no-wrap[Don't break long message lines into several lines.]" \ + "--no-location[Don't write '#: filename:line' lines.]" \ + '--no-obsolete[emove obsolete message strings.]' \ + '--keep-pot[Keep .pot file after making messages.]' \ + $nul_args && ret=0 +} +_managepy-makemigrations(){ + _arguments -s : \ + '--dry-run[Just show what migrations would be made]' \ + '--merge[Enable fixing of migration conflicts.]' \ + '--empty[Create an empty migration.]' \ + $noinput_args \ + $nul_args && ret=0 +} +_managepy-migrate(){ + _arguments -s : \ + '--fake[Mark migrations as run without actually running them]' \ + '--list[Show a list of all known migrations and which are applied]' \ + $no_init_data_args \ + $noinput_args \ + $db_args \ $nul_args && ret=0 } _managepy-runfcgi(){ local state - + local fcgi_opts fcgi_opts=( 'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)' 'host[hostname to listen on..]:' 'port[port to listen on.]:' - 'socket[UNIX socket to listen on.]::file:_files' + 'socket[UNIX socket to listen on.]:file:_files' 'method[prefork or threaded (default prefork)]:method:(prefork threaded)' 'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:' 'maxspare[max number of spare processes / threads.]:' @@ -112,7 +196,7 @@ _managepy-runfcgi(){ 'outlog[write stdout to this file.]:file:_files' 'errlog[write stderr to this file.]:file:_files' ) - + _arguments -s : \ $nul_args \ '*: :_values "FCGI Setting" $fcgi_opts' && ret=0 @@ -120,72 +204,148 @@ _managepy-runfcgi(){ _managepy-runserver(){ _arguments -s : \ - '--noreload[tells Django to NOT use the auto-reloader.]' \ - '--adminmedia[specifies the directory from which to serve admin media.]:directory:_files' \ + '--ipv6[Tells Django to use an IPv6 address.]' \ + '--nothreading[Tells Django to NOT use threading.]' \ + '--noreload[Tells Django to NOT use the auto-reloader.]' \ + '--nostatic[Tells Django to NOT automatically serve static files at STATIC_URL.]' \ + '--insecure[Allows serving static files even if DEBUG is False.]' \ $nul_args && ret=0 } _managepy-shell(){ _arguments -s : \ - '--plain[tells Django to use plain Python, not IPython.]' \ + '--plain[Tells Django to use plain Python, not IPython.]' \ + '--no-startup[When using plain Python, ignore the PYTHONSTARTUP environment variable and ~/.pythonrc.py script.]' \ + '--interface=-[Specify an interactive interpreter interface.]:INTERFACE:((ipython bpython))' \ $nul_args && ret=0 } -_managepy-sql(){} -_managepy-sqlall(){} -_managepy-sqlclear(){} -_managepy-sqlcustom(){} -_managepy-sqlflush(){} -_managepy-sqlindexes(){} -_managepy-sqlinitialdata(){} -_managepy-sqlreset(){} -_managepy-sqlsequencereset(){} -_managepy-startapp(){} -_managepy-startproject(){} +_managepy-sql(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlall(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlclear(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlcustom(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-dropindexes(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlflush(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlindexes(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-sqlinitialdata(){ + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-sqlsequencereset(){ + _arguments -s : \ + $db_args \ + $nul_args && ret=0 +} + +_managepy-squashmigrations(){ + _arguments -s : \ + '--no-optimize[Do not try to optimize the squashed operations.]' \ + $noinput_args \ + $nul_args && ret=0 +} + +_managepy-startapp(){ + _arguments -s : \ + $start_args \ + $nul_args && ret=0 +} +_managepy-startproject(){ + _arguments -s : \ + $start_args \ + $nul_args && ret=0 +} _managepy-syncdb() { _arguments -s : \ - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ - '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + $noinput_args \ + $no_init_data_args \ + $db_args \ $nul_args && ret=0 } _managepy-test() { _arguments -s : \ - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ - '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + '--failfast[Tells Django to stop running the test suite after first failed test.]' \ + '--testrunner=-[Tells Django to use specified test runner class instead of the one specified by the TEST_RUNNER setting.]' \ + '--liveserver=-[Overrides the default address where the live server (used with LiveServerTestCase) is expected to run from. The default value is localhost:8081.]' \ + '--top-level-directory=-[Top level of project for unittest discovery.]' \ + '--pattern=-[The test matching pattern. Defaults to test*.py.]:' \ + $noinput_args \ '*::appname:_applist' \ $nul_args && ret=0 } _managepy-testserver() { _arguments -s : \ - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ '--addrport=-[port number or ipaddr:port to run the server on.]' \ + '--ipv6[Tells Django to use an IPv6 address.]' \ + $noinput_args \ '*::fixture:_files' \ $nul_args && ret=0 } _managepy-validate() { _arguments -s : \ + $tag_args \ $nul_args && ret=0 } _managepy-commands() { local -a commands - + commands=( - 'adminindex:prints the admin-index template snippet for the given app name(s).' - 'createcachetable:creates the table needed to use the SQL cache backend.' + "changepassword:Change a user's password for django.contrib.auth." + 'check:Checks the entire Django project for potential problems.' + 'compilemessages:Compiles .po files to .mo files for use with builtin gettext support.' + 'createcachetable:Creates the table needed to use the SQL cache backend.' + 'createsuperuser:Used to create a superuser.' 'collectstatic:Collect static files in a single location.' - 'dbshell:runs the command-line client for the current DATABASE_ENGINE.' - "diffsettings:displays differences between the current settings.py and Django's default settings." + 'dbshell:Runs the command-line client for the current DATABASE_ENGINE.' + "diffsettings:Displays differences between the current settings.py and Django's default settings." 'dumpdata:Output the contents of the database as a fixture of the given format.' 'flush:Executes ``sqlflush`` on the current database.' 'help:manage.py help.' 'inspectdb:Introspects the database tables in the given database and outputs a Django model module.' 'loaddata:Installs the named fixture(s) in the database.' - 'reset:Executes ``sqlreset`` for the given app(s) in the current database.' + 'makemessages:Runs over the entire source tree of the current directory and pulls out all strings marked for translation.' + 'makemigrations:Creates new migration(s) for apps.' + 'migrate:Updates database schema. Manages both apps with migrations and those without.' 'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,' 'runserver:Starts a lightweight Web server for development.' 'shell:Runs a Python interactive interpreter.' @@ -193,11 +353,12 @@ _managepy-commands() { 'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).' 'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).' 'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).' + 'sqldropindexes:Prints the DROP INDEX SQL statements for the given model module name(s).' 'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.' 'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).' "sqlinitialdata:RENAMED: see 'sqlcustom'" - 'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).' 'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).' + 'squashmigrations:Squashes an existing set of migrations (from first until specified) into a single new one.' "startapp:Creates a Django app directory structure for the given app name in this project's directory." "startproject:Creates a Django project directory structure for the given project name in this current directory." "syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." @@ -205,7 +366,7 @@ _managepy-commands() { 'testserver:Runs a development server with data from the given fixture(s).' 'validate:Validates all installed models.' ) - + _describe -t commands 'manage.py command' commands && ret=0 } @@ -223,7 +384,7 @@ _applist() { _managepy() { local curcontext=$curcontext ret=1 - + if ((CURRENT == 2)); then _managepy-commands else