summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/git.zsh13
-rw-r--r--oh-my-zsh.sh2
-rw-r--r--plugins/ant/ant.plugin.zsh16
-rwxr-xr-xplugins/bower/_bower58
-rw-r--r--plugins/bundler/bundler.plugin.zsh2
-rw-r--r--plugins/cake/cake.plugin.zsh11
-rw-r--r--plugins/colored-man/colored-man.plugin.zsh11
-rw-r--r--plugins/composer/composer.plugin.zsh4
-rw-r--r--plugins/copydir/copydir.plugin.zsh3
-rw-r--r--plugins/emoji-clock/emoji-clock.plugin.zsh29
-rw-r--r--plugins/git/git.plugin.zsh6
-rw-r--r--plugins/github/github.plugin.zsh17
-rw-r--r--plugins/gradle/gradle.plugin.zsh19
-rw-r--r--plugins/knife/_knife17
-rw-r--r--plugins/last-working-dir/last-working-dir.plugin.zsh3
-rw-r--r--plugins/mercurial/mercurial.plugin.zsh5
-rw-r--r--plugins/phing/phing.plugin.zsh11
-rw-r--r--plugins/powify/_powify55
-rw-r--r--plugins/safe-paste/safe-paste.plugin.zsh54
-rwxr-xr-xplugins/sublime/sublime.plugin.zsh2
-rw-r--r--plugins/symfony2/symfony2.plugin.zsh6
-rw-r--r--plugins/tmux/tmux.extra.conf2
-rw-r--r--plugins/tmux/tmux.only.conf1
-rw-r--r--plugins/tmux/tmux.plugin.zsh85
-rw-r--r--plugins/tmuxinator/_tmuxinator36
-rw-r--r--plugins/vagrant/_vagrant7
-rw-r--r--plugins/vundle/vundle.plugin.zsh6
-rw-r--r--plugins/zeus/zeus.plugin.zsh6
-rw-r--r--themes/gianu.zsh-theme11
-rw-r--r--themes/itchy.zsh-theme19
-rw-r--r--themes/jaischeema.zsh-theme23
-rw-r--r--themes/kiwi.zsh-theme12
-rw-r--r--tools/upgrade.sh3
33 files changed, 482 insertions, 73 deletions
diff --git a/lib/git.zsh b/lib/git.zsh
index 67075248e..76fe9b142 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -9,16 +9,19 @@ function git_prompt_info() {
# Checks if working tree is dirty
parse_git_dirty() {
local SUBMODULE_SYNTAX=''
+ local GIT_STATUS=''
+ local CLEAN_MESSAGE='nothing to commit (working directory clean)'
if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
- fi
- if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then
+ fi
+ GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
+ if [[ -n $GIT_STATUS && "$GIT_STATUS" != "$CLEAN_MESSAGE" ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
- fi
- fi
+ fi
+ fi
}
# get the difference between the local and remote branches
@@ -62,7 +65,7 @@ function git_prompt_long_sha() {
git_prompt_status() {
INDEX=$(git status --porcelain -b 2> /dev/null)
STATUS=""
- if $(echo "$INDEX" | grep '^\?\? ' &> /dev/null); then
+ if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
fi
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index 689a79fef..5b8e63e73 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -1,7 +1,7 @@
# Check for updates on initial load...
if [ "$DISABLE_AUTO_UPDATE" != "true" ]
then
- /usr/bin/env ZSH=$ZSH zsh $ZSH/tools/check_for_upgrade.sh
+ /usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh $ZSH/tools/check_for_upgrade.sh
fi
# Initializes Oh My Zsh
diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh
index 691d4d2db..45f2b06eb 100644
--- a/plugins/ant/ant.plugin.zsh
+++ b/plugins/ant/ant.plugin.zsh
@@ -1,17 +1,7 @@
-stat -f%m . > /dev/null 2>&1
-if [ "$?" = 0 ]; then
- stat_cmd=(stat -f%m)
-else
- stat_cmd=(stat -L --format=%Y)
-fi
-
_ant_does_target_list_need_generating () {
- if [ ! -f .ant_targets ]; then return 0;
- else
- accurate=$($stat_cmd .ant_targets)
- changed=$($stat_cmd build.xml)
- return $(expr $accurate '>=' $changed)
- fi
+ [ ! -f .ant_targets ] && return 0;
+ [ .ant_targets -nt build.xml ] && return 0;
+ return 1;
}
_ant () {
diff --git a/plugins/bower/_bower b/plugins/bower/_bower
new file mode 100755
index 000000000..ae0ca4a4e
--- /dev/null
+++ b/plugins/bower/_bower
@@ -0,0 +1,58 @@
+
+
+# Credits to npm's awesome completion utility.
+#
+# Bower completion script, based on npm completion script.
+
+###-begin-bower-completion-###
+#
+# Installation: bower completion >> ~/.bashrc (or ~/.zshrc)
+# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower
+#
+
+COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
+COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
+export COMP_WORDBREAKS
+
+if type complete &>/dev/null; then
+ _bower_completion () {
+ local si="$IFS"
+ IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
+ COMP_LINE="$COMP_LINE" \
+ COMP_POINT="$COMP_POINT" \
+ bower completion -- "${COMP_WORDS[@]}" \
+ 2>/dev/null)) || return $?
+ IFS="$si"
+ }
+ complete -F _bower_completion bower
+elif type compdef &>/dev/null; then
+ _bower_completion() {
+ si=$IFS
+ compadd -- $(COMP_CWORD=$((CURRENT-1)) \
+ COMP_LINE=$BUFFER \
+ COMP_POINT=0 \
+ bower completion -- "${words[@]}" \
+ 2>/dev/null)
+ IFS=$si
+ }
+ compdef _bower_completion bower
+elif type compctl &>/dev/null; then
+ _bower_completion () {
+ local cword line point words si
+ read -Ac words
+ read -cn cword
+ let cword-=1
+ read -l line
+ read -ln point
+ si="$IFS"
+ IFS=$'\n' reply=($(COMP_CWORD="$cword" \
+ COMP_LINE="$line" \
+ COMP_POINT="$point" \
+ bower completion -- "${words[@]}" \
+ 2>/dev/null)) || return $?
+ IFS="$si"
+ }
+ compctl -K _bower_completion bower
+fi
+###-end-bower-completion-###
+
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index 10c221acd..bc21da134 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -6,7 +6,7 @@ alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec
-bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma zeus)
+bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma)
## Functions
diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh
index 1d0d196ee..44cc47470 100644
--- a/plugins/cake/cake.plugin.zsh
+++ b/plugins/cake/cake.plugin.zsh
@@ -14,12 +14,9 @@ _cake_does_target_list_need_generating () {
return 1;
fi
- if [ ! -f ${_cake_task_cache_file} ]; then return 0;
- else
- accurate=$(stat -f%m $_cake_task_cache_file)
- changed=$(stat -f%m Cakefile)
- return $(expr $accurate '>=' $changed)
- fi
+ [ ! -f ${_cake_task_cache_file} ] && return 0;
+ [ ${_cake_task_cache_file} -nt Cakefile ] && return 0;
+ return 1;
}
_cake () {
@@ -33,4 +30,4 @@ _cake () {
fi
}
-compdef _cake cake \ No newline at end of file
+compdef _cake cake
diff --git a/plugins/colored-man/colored-man.plugin.zsh b/plugins/colored-man/colored-man.plugin.zsh
new file mode 100644
index 000000000..56056284a
--- /dev/null
+++ b/plugins/colored-man/colored-man.plugin.zsh
@@ -0,0 +1,11 @@
+man() {
+ env \
+ LESS_TERMCAP_mb=$(printf "\e[1;31m") \
+ LESS_TERMCAP_md=$(printf "\e[1;31m") \
+ LESS_TERMCAP_me=$(printf "\e[0m") \
+ LESS_TERMCAP_se=$(printf "\e[0m") \
+ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
+ LESS_TERMCAP_ue=$(printf "\e[0m") \
+ LESS_TERMCAP_us=$(printf "\e[1;32m") \
+ man "$@"
+}
diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh
index c9b762d07..639677ba6 100644
--- a/plugins/composer/composer.plugin.zsh
+++ b/plugins/composer/composer.plugin.zsh
@@ -13,6 +13,8 @@ _composer_get_command_list () {
_composer () {
if [ -f composer.json ]; then
compadd `_composer_get_command_list`
+ else
+ compadd create-project init search selfupdate show
fi
}
@@ -26,4 +28,4 @@ alias ci='composer install'
alias ccp='composer create-project'
# install composer in the current directory
-alias cget='curl -s https://getcomposer.org/installer | php' \ No newline at end of file
+alias cget='curl -s https://getcomposer.org/installer | php'
diff --git a/plugins/copydir/copydir.plugin.zsh b/plugins/copydir/copydir.plugin.zsh
new file mode 100644
index 000000000..37bb5e086
--- /dev/null
+++ b/plugins/copydir/copydir.plugin.zsh
@@ -0,0 +1,3 @@
+function copydir {
+ pwd | tr -d "\r\n" | pbcopy
+} \ No newline at end of file
diff --git a/plugins/emoji-clock/emoji-clock.plugin.zsh b/plugins/emoji-clock/emoji-clock.plugin.zsh
new file mode 100644
index 000000000..7351a02ec
--- /dev/null
+++ b/plugins/emoji-clock/emoji-clock.plugin.zsh
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------------------
+# FILE: emoji-clock.plugin.zsh
+# DESCRIPTION: The current time with half hour accuracy as an emoji symbol.
+# Inspired by Andre Torrez' "Put A Burger In Your Shell"
+# http://notes.torrez.org/2013/04/put-a-burger-in-your-shell.html
+# AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net)
+# VERSION: 1.0.0
+# -----------------------------------------------------------------------------
+
+function emoji-clock() {
+ hour=$(date '+%I')
+ minutes=$(date '+%M')
+ case $hour in
+ 01) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";;
+ 02) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";;
+ 03) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";;
+ 04) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";;
+ 05) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";;
+ 06) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";;
+ 07) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";;
+ 08) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";;
+ 09) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";;
+ 10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";;
+ 11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";;
+ 12) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";;
+ *) clock="⌛";;
+ esac
+ echo $clock
+}
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 154aa6db1..15f901f86 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -14,8 +14,12 @@ gdv() { git diff -w "$@" | view - }
compdef _git gdv=git-diff
alias gc='git commit -v'
compdef _git gc=git-commit
+alias gc!='git commit -v --amend'
+compdef _git gc!=git-commit
alias gca='git commit -v -a'
-compdef _git gca=git-commit
+compdef _git gc=git-commit
+alias gca!='git commit -v -a --amend'
+compdef _git gca!=git-commit
alias gco='git checkout'
compdef _git gco=git-checkout
alias gcm='git checkout master'
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index 598b059c1..66a10cfdb 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -1,5 +1,22 @@
# Setup hub function for git, if it is available; http://github.com/defunkt/hub
if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
+ # Autoload _git completion functions
+ if declare -f _git > /dev/null; then
+ _git
+ fi
+
+ if declare -f _git_commands > /dev/null; then
+ _hub_commands=(
+ 'alias:show shell instructions for wrapping git'
+ 'pull-request:open a pull request on GitHub'
+ 'fork:fork origin repo on GitHub'
+ 'create:create new repo on GitHub for the current project'
+ 'browse:browse the project on GitHub'
+ 'compare:open GitHub compare view'
+ )
+ # Extend the '_git_commands' function with hub commands
+ eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')"
+ fi
# eval `hub alias -s zsh`
function git(){
if ! (( $+_has_working_hub )); then
diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh
index fc4c78c50..9229512f7 100644
--- a/plugins/gradle/gradle.plugin.zsh
+++ b/plugins/gradle/gradle.plugin.zsh
@@ -54,27 +54,14 @@ function in_gradle() {
fi
}
-############################################################################
-# Define the stat_cmd command based on platform behavior
-##########################################################################
-stat -f%m . > /dev/null 2>&1
-if [ "$?" = 0 ]; then
- stat_cmd=(stat -f%m)
-else
- stat_cmd=(stat -L --format=%Y)
-fi
-
############################################################################## Examine the build.gradle file to see if its
# timestamp has changed, and if so, regen
# the .gradle_tasks cache file
############################################################################
_gradle_does_task_list_need_generating () {
- if [ ! -f .gradletasknamecache ]; then return 0;
- else
- accurate=$($stat_cmd .gradletasknamecache)
- changed=$($stat_cmd build.gradle)
- return $(expr $accurate '>=' $changed)
- fi
+ [ ! -f .gradletasknamecache ] && return 0;
+ [ .gradletasknamecache -nt build.gradle ] && return 0;
+ return 1;
}
diff --git a/plugins/knife/_knife b/plugins/knife/_knife
index dec491257..9f5b406af 100644
--- a/plugins/knife/_knife
+++ b/plugins/knife/_knife
@@ -1,5 +1,10 @@
#compdef knife
+# You can override the path to knife.rb and your cookbooks by setting
+# KNIFE_CONF_PATH=/path/to/my/.chef/knife.rb
+# KNIFE_COOKBOOK_PATH=/path/to/my/chef/cookbooks
+# Read around where these are used for more detail.
+
# These flags should be available everywhere according to man knife
knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes )
@@ -170,11 +175,13 @@ _chef_environments_remote() {
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
_chef_cookbooks_local() {
- local knife_rb="$HOME/.chef/knife.rb"
- if [ -f ./.chef/knife.rb ]; then
- knife_rb="./.chef/knife.rb"
- fi
- (for i in $( grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done)
+
+ local knife_rb=${KNIFE_CONF_PATH:-${HOME}/.chef/knife.rb}
+ if [ -f ./.chef/knife.rb ]; then
+ knife_rb="./.chef/knife.rb"
+ fi
+ local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' )}
+ (for i in $cookbook_path; do ls $i; done)
}
# This function extracts the available cookbook versions on the chef server
diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh
index 190bc279d..bc36c80db 100644
--- a/plugins/last-working-dir/last-working-dir.plugin.zsh
+++ b/plugins/last-working-dir/last-working-dir.plugin.zsh
@@ -9,7 +9,8 @@ local cache_file="$ZSH/cache/last-working-dir"
# Updates the last directory once directory is changed.
function chpwd() {
- echo "$PWD" > "$cache_file"
+ # Use >| in case noclobber is set to avoid "file exists" error
+ pwd >| "$cache_file"
}
# Changes directory to the last working directory.
diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh
index a3a6ff8b6..30e4be5b5 100644
--- a/plugins/mercurial/mercurial.plugin.zsh
+++ b/plugins/mercurial/mercurial.plugin.zsh
@@ -7,7 +7,10 @@ alias hgco='hg checkout'
alias hgd='hg diff'
alias hged='hg diffmerge'
# pull and update
+alias hgi='hg incoming'
alias hgl='hg pull -u'
+alias hglr='hg pull --rebase'
+alias hgo='hg outgoing'
alias hgp='hg push'
alias hgs='hg status'
# this is the 'git commit --amend' equivalent
@@ -17,4 +20,4 @@ function hg_current_branch() {
if [ -d .hg ]; then
echo hg:$(hg branch)
fi
-} \ No newline at end of file
+}
diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh
index 8f4adca08..795f1db85 100644
--- a/plugins/phing/phing.plugin.zsh
+++ b/plugins/phing/phing.plugin.zsh
@@ -1,16 +1,13 @@
_phing_does_target_list_need_generating () {
- if [ ! -f .phing_targets ]; then return 0;
- else
- accurate=$(stat -f%m .phing_targets)
- changed=$(stat -f%m build.xml)
- return $(expr $accurate '>=' $changed)
- fi
+ [ ! -f .phing_targets ] && return 0;
+ [ .phing_targets -nt build.xml ] && return 0;
+ return 1;
}
_phing () {
if [ -f build.xml ]; then
if _phing_does_target_list_need_generating; then
- phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets
+ phing -l |grep -v ":$" |grep -v "^-*$" > .phing_targets
fi
compadd `cat .phing_targets`
fi
diff --git a/plugins/powify/_powify b/plugins/powify/_powify
new file mode 100644
index 000000000..d23c46513
--- /dev/null
+++ b/plugins/powify/_powify
@@ -0,0 +1,55 @@
+#compdef powify
+
+_powify_all_servers() {
+ all_servers=(`ls $HOME/.pow/`)
+}
+
+local -a all_servers
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'server:server specific commands'
+ 'utils:manage powify'
+ 'create:creates a pow app from the current directory (to change the name append name as an argument)'
+ 'destroy:destroys the pow app linked to the current directory'
+ 'restart:restarts the pow app linked to the current directory'
+ 'always_restart:reload the pow app after each request'
+ 'always_restart_off:do not reload the pow app after each request'
+ 'rename:rename the current pow app to [NAME] or renmae [OLD] to [NEW]'
+ 'environment:run the this pow app in a different environment (aliased `env`)'
+ 'browse:opens and navigates the default browser to this app'
+ 'logs:tail the application logs'
+)
+
+_arguments '*:: :->command'
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "powify command" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ server)
+ _values \
+ 'install[install pow server]' \
+ 'reinstall[reinstall pow server]' \
+ 'update[update pow server]' \
+ 'uninstall[uninstall pow server]' \
+ 'list[list all pow apps]' \
+ 'start[start the pow server]' \
+ 'stop[stop the pow server]' \
+ 'restart[restart the pow server]' \
+ 'host[adds all pow apps to /etc/hosts file]' \
+ 'unhost[removes all pow apps from /etc/hosts file]' \
+ 'status[print the current server status]' \
+ 'config[print the current server configuration]' \
+ 'logs[tails the pow server logs]' ;;
+ utils)
+ _values \
+ 'install[install powify.dev server management tool]' \
+ 'reinstall[reinstall powify.dev server management tool]' \
+ 'uninstall[uninstall powify.dev server management tool]' ;;
+ destroy|restart|always_restart|always_restart_off|rename|browse|logs)
+ _powify_all_servers
+ _wanted all_servers expl 'all pow servers' compadd -a all_servers ;;
+esac
diff --git a/plugins/safe-paste/safe-paste.plugin.zsh b/plugins/safe-paste/safe-paste.plugin.zsh
new file mode 100644
index 000000000..0aa97965f
--- /dev/null
+++ b/plugins/safe-paste/safe-paste.plugin.zsh
@@ -0,0 +1,54 @@
+# Code from Mikael Magnusson: http://www.zsh.org/mla/users/2011/msg00367.html
+#
+# Requires xterm, urxvt, iTerm2 or any other terminal that supports bracketed
+# paste mode as documented: http://www.xfree86.org/current/ctlseqs.html
+
+# create a new keymap to use while pasting
+bindkey -N paste
+# make everything in this keymap call our custom widget
+bindkey -R -M paste "^@"-"\M-^?" paste-insert
+# these are the codes sent around the pasted text in bracketed
+# paste mode.
+# do the first one with both -M viins and -M vicmd in vi mode
+bindkey '^[[200~' _start_paste
+bindkey -M paste '^[[201~' _end_paste
+# insert newlines rather than carriage returns when pasting newlines
+bindkey -M paste -s '^M' '^J'
+
+zle -N _start_paste
+zle -N _end_paste
+zle -N zle-line-init _zle_line_init
+zle -N zle-line-finish _zle_line_finish
+zle -N paste-insert _paste_insert
+
+# switch the active keymap to paste mode
+function _start_paste() {
+ bindkey -A paste main
+}
+
+# go back to our normal keymap, and insert all the pasted text in the
+# command line. this has the nice effect of making the whole paste be
+# a single undo/redo event.
+function _end_paste() {
+#use bindkey -v here with vi mode probably. maybe you want to track
+#if you were in ins or cmd mode and restore the right one.
+ bindkey -e
+ LBUFFER+=$_paste_content
+ unset _paste_content
+}
+
+function _paste_insert() {
+ _paste_content+=$KEYS
+}
+
+function _zle_line_init() {
+ # Tell terminal to send escape codes around pastes.
+ [[ $TERM == rxvt-unicode || $TERM == xterm || $TERM = xterm-256color ]] && printf '\e[?2004h'
+}
+
+function _zle_line_finish() {
+ # Tell it to stop when we leave zle, so pasting in other programs
+ # doesn't get the ^[[200~ codes around the pasted text.
+ [[ $TERM == rxvt-unicode || $TERM == xterm || $TERM = xterm-256color ]] && printf '\e[?2004l'
+}
+
diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh
index bfbc45a07..7a5ada337 100755
--- a/plugins/sublime/sublime.plugin.zsh
+++ b/plugins/sublime/sublime.plugin.zsh
@@ -1,6 +1,6 @@
# Sublime Text 2 Aliases
-local _sublime_darwin_paths
+local _sublime_darwin_paths > /dev/null 2>&1
_sublime_darwin_paths=(
"$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh
index cc9ffebc0..45d6165aa 100644
--- a/plugins/symfony2/symfony2.plugin.zsh
+++ b/plugins/symfony2/symfony2.plugin.zsh
@@ -14,6 +14,8 @@ compdef _symfony2 app/console
compdef _symfony2 sf
#Alias
-alias sf2='php app/console'
-alias sf2clear='php app/console cache:clear'
+alias sf='php app/console'
+alias sfcl='php app/console cache:clear'
+alias sfroute='php app/console router:debug'
+alias sfgb='php app/console generate:bundle'
diff --git a/plugins/tmux/tmux.extra.conf b/plugins/tmux/tmux.extra.conf
new file mode 100644
index 000000000..beffd380c
--- /dev/null
+++ b/plugins/tmux/tmux.extra.conf
@@ -0,0 +1,2 @@
+set -g default-terminal $ZSH_TMUX_TERM
+source $HOME/.tmux.conf
diff --git a/plugins/tmux/tmux.only.conf b/plugins/tmux/tmux.only.conf
new file mode 100644
index 000000000..0734df3e1
--- /dev/null
+++ b/plugins/tmux/tmux.only.conf
@@ -0,0 +1 @@
+set -g default-terminal $ZSH_TMUX_TERM
diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh
new file mode 100644
index 000000000..465f5b053
--- /dev/null
+++ b/plugins/tmux/tmux.plugin.zsh
@@ -0,0 +1,85 @@
+# Only run if tmux is actually installed
+if which tmux &> /dev/null
+ then
+ # Configuration variables
+ #
+ # Automatically start tmux
+ [[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false
+ # Only autostart once. If set to false, tmux will attempt to
+ # autostart every time your zsh configs are reloaded.
+ [[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true
+ # Automatically connect to a previous session if it exists
+ [[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true
+ # Automatically close the terminal when tmux exits
+ [[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
+ # Set term to screen or screen-256color based on current terminal support
+ [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
+ # The TERM to use for non-256 color terminals.
+ # Tmux states this should be screen, but you may need to change it on
+ # systems without the proper terminfo
+ [[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen"
+ # The TERM to use for 256 color terminals.
+ # Tmux states this should be screen-256color, but you may need to change it on
+ # systems without the proper terminfo
+ [[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color"
+
+
+ # Get the absolute path to the current directory
+ local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
+
+ # Determine if the terminal supports 256 colors
+ if [[ `tput colors` == "256" ]]
+ then
+ export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
+ else
+ export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
+ fi
+
+ # Set the correct local config file to use.
+ if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]]
+ then
+ #use this when they have a ~/.tmux.conf
+ export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf"
+ else
+ #use this when they don't have a ~/.tmux.conf
+ export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.only.conf"
+ fi
+
+ # Wrapper function for tmux.
+ function _zsh_tmux_plugin_run()
+ {
+ # We have other arguments, just run them
+ if [[ -n "$@" ]]
+ then
+ \tmux $@
+ # Try to connect to an existing session.
+ elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]
+ then
+ \tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session
+ [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
+ # Just run tmux, fixing the TERM variable if requested.
+ else
+ \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`
+ [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
+ fi
+ }
+
+ # Use the completions for tmux for our function
+ compdef _tmux _zsh_tmux_plugin_run
+
+ # Alias tmux to our wrapper function.
+ alias tmux=_zsh_tmux_plugin_run
+
+ # Autostart if not already in tmux and enabled.
+ if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]]
+ then
+ # Actually don't autostart if we already did and multiple autostarts are disabled.
+ if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]
+ then
+ export ZSH_TMUX_AUTOSTARTED=true
+ _zsh_tmux_plugin_run
+ fi
+ fi
+else
+ print "zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
+fi
diff --git a/plugins/tmuxinator/_tmuxinator b/plugins/tmuxinator/_tmuxinator
new file mode 100644
index 000000000..f0ff304dd
--- /dev/null
+++ b/plugins/tmuxinator/_tmuxinator
@@ -0,0 +1,36 @@
+#compdef tmuxinator
+#autoload
+
+local curcontext="$curcontext" state line ret=1
+local -a _configs
+
+_arguments -C \
+ '1: :->cmds' \
+ '2:: :->args' && ret=0
+
+case $state in
+ cmds)
+ _values "tmuxinator command" \
+ "start[start a tmux session using project's tmuxinator config]" \
+ "open[create a new project file and open it in your editor]" \
+ "copy[copy source_project project file to a new project called new_project]" \
+ "delete[deletes the project called project_name]" \
+ "implode[deletes all existing projects!]" \
+ "list[list all existing projects]" \
+ "doctor[look for problems in your configuration]" \
+ "help[shows this help document]" \
+ "version[shows tmuxinator version number]"
+ ret=0
+ ;;
+ args)
+ case $line[1] in
+ start|open|copy|delete)
+ _configs=(`tmuxinator list | sed -n 's/^[ \t]\+//p'`)
+ _values 'configs' $_configs
+ ret=0
+ ;;
+ esac
+ ;;
+esac
+
+return ret \ No newline at end of file
diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant
index 9bed1e3c6..9af8cb036 100644
--- a/plugins/vagrant/_vagrant
+++ b/plugins/vagrant/_vagrant
@@ -8,18 +8,19 @@ _1st_arguments=(
'box:Box commands'
'destroy:Destroys the vagrant environment'
'halt:Halts the currently running vagrant environment'
- 'help:[TASK] Describe available tasks or one specific task'
'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
'package:Packages a vagrant environment for distribution'
+ 'plugin:Plugin commands'
'provision:Run the provisioner'
'reload:Reload the vagrant environment'
'resume:Resumes a suspend vagrant environment'
'ssh:SSH into the currently running environment'
- 'ssh_config:outputs .ssh/config valid syntax for connecting to this environment via ssh.'
+ 'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh.'
'status:Shows the status of the current Vagrant environment.'
'suspend:Suspends the currently running vagrant environment'
'up:Creates the vagrant environment'
- 'version:Prints the Vagrant version information'
+ '--help:[TASK] Describe available tasks or one specific task'
+ '--version:Prints the Vagrant version information'
)
local -a _box_arguments
diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh
index 005a58476..936c8d7d2 100644
--- a/plugins/vundle/vundle.plugin.zsh
+++ b/plugins/vundle/vundle.plugin.zsh
@@ -16,8 +16,12 @@ function vundle () {
vim -c "execute \"BundleInstall\" | q | q"
}
-
function vundle-update () {
vundle-init
vim -c "execute \"BundleInstall!\" | q | q"
}
+
+function vundle-clean () {
+ vundle-init
+ vim -c "execute \"BundleClean!\" | q | q"
+}
diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh
index 1658b34d3..eddfb4f94 100644
--- a/plugins/zeus/zeus.plugin.zsh
+++ b/plugins/zeus/zeus.plugin.zsh
@@ -2,12 +2,6 @@
# Zeus preloads your Rails environment and forks that process whenever
# needed. This effectively speeds up Rails' boot process to under 1 sec.
-# Always use bundler.
-# Rails depends on bundler, so we can be pretty sure, that there are no
-# problems with this command. For all the other aliases I provided an
-# alternative, in case people have conflicts with other plugins (e.g. suse).
-alias zeus='bundle exec zeus'
-
# Init
alias zi='zeus init'
alias zinit='zeus init'
diff --git a/themes/gianu.zsh-theme b/themes/gianu.zsh-theme
new file mode 100644
index 000000000..c7fe40665
--- /dev/null
+++ b/themes/gianu.zsh-theme
@@ -0,0 +1,11 @@
+# Oh-my-Zsh prompt created by gianu
+#
+# github.com/gianu
+# sgianazza@gmail.com
+
+PROMPT='[%{$fg_bold[white]%}%n%{$reset_color%}@%{$fg_bold[red]%}%m%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)%{$reset_color%}]$ '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="(%{$fg_bold[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%} %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$reset_color%}"
diff --git a/themes/itchy.zsh-theme b/themes/itchy.zsh-theme
new file mode 100644
index 000000000..afc2abf69
--- /dev/null
+++ b/themes/itchy.zsh-theme
@@ -0,0 +1,19 @@
+# Created by Daniel Bayerlein https://github.com/danielbayerlein
+# Inspired by http://peepcode.com/blog/2012/my-command-line-prompt
+
+local smiley="%(?,%{$fg[green]%}☺%{$reset_color%},%{$fg[red]%}☹%{$reset_color%})"
+
+local user="%{$fg[cyan]%}%n%{$reset_color%}"
+local host="%{$fg[cyan]%}@%m%{$reset_color%}"
+local pwd="%{$fg[yellow]%}%~%{$reset_color%}"
+
+PROMPT='${user}${host} ${pwd}
+${smiley} '
+
+RPROMPT='$(rvm-prompt || rbenv version) %{$fg[white]%}$(git_prompt_info)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=""
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%} ✔%{$reset_color%}"
+
diff --git a/themes/jaischeema.zsh-theme b/themes/jaischeema.zsh-theme
new file mode 100644
index 000000000..aecc5b961
--- /dev/null
+++ b/themes/jaischeema.zsh-theme
@@ -0,0 +1,23 @@
+# ------------------------------------------------------------------------------
+# FILE: jaischeema.zsh-theme
+# DESCRIPTION: oh-my-zsh theme file.
+# AUTHOR: Jais Cheema
+# VERSION: 0.0.1
+# ------------------------------------------------------------------------------
+
+
+
+PROMPT='%{$fg_bold[magenta]%}%m%{$reset_color%} at %{$fg_bold[green]%}%~%{$reset_color%} %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}%{$fg[red]%}❯%{$reset_color%} '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="±(%{$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]%}) "
+
+if which rbenv &> /dev/null; then
+ RPROMPT='%{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//")%{$reset_color%}'
+else
+ if which rvm-prompt &> /dev/null; then
+ RPROMPT='%{$fg[red]%}$(rvm-prompt)%{$reset_color%}'
+ fi
+fi
diff --git a/themes/kiwi.zsh-theme b/themes/kiwi.zsh-theme
new file mode 100644
index 000000000..f93de2b75
--- /dev/null
+++ b/themes/kiwi.zsh-theme
@@ -0,0 +1,12 @@
+#
+# Kiwi ZSH Theme
+#
+
+PROMPT='%{$fg_bold[green]%}┌[%{$fg_bold[cyan]%}kiwish-4.2%{$fg_bold[green]%}]-(%{$fg_bold[white]%}%2~%{$fg_bold[green]%})-$(git_prompt_info)$(svn_prompt_info)$(battery_pct_prompt)
+└> % %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="[%{$reset_color%}%{$fg[white]%}git:%{$fg_bold[white]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[green]%}]-"
+
+ZSH_THEME_SVN_PROMPT_PREFIX="[%{$reset_color%}%{$fg[white]%}svn:%{$fg_bold[white]%}/"
+ZSH_THEME_SVN_PROMPT_SUFFIX="%{$fg_bold[green]%}]-"
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index b2a1c06c4..cd689ba1f 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -1,4 +1,5 @@
current_path=`pwd`
+current_path=${current_path/ /\\ }
printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh"
cd $ZSH
@@ -16,4 +17,4 @@ else
printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?'
fi
-cd "$current_path" \ No newline at end of file
+cd "$current_path"