From 8c419ae3b5b77a24485c6a68e6af1a0384db67a8 Mon Sep 17 00:00:00 2001 From: NanoTech Date: Sat, 12 Jun 2010 16:31:02 -0600 Subject: [PATCH 001/112] Added my theme (nanotech). --- themes/nanotech.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/nanotech.zsh-theme diff --git a/themes/nanotech.zsh-theme b/themes/nanotech.zsh-theme new file mode 100644 index 000000000..eddb23c94 --- /dev/null +++ b/themes/nanotech.zsh-theme @@ -0,0 +1,7 @@ +PROMPT=' %{$fg_bold[green]%}%2c %{$fg_bold[blue]%}%{[%}%{$reset_color%} ' +RPROMPT='$(git_prompt_info) %{$fg[blue]%}] %{$fg[green]%}%D{%L:%M} %{$fg[yellow]%}%D{%p}%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 2a203b558fd6328c9a91e9dbbf145d91e7ba7ed1 Mon Sep 17 00:00:00 2001 From: NanoTech Date: Sun, 14 Nov 2010 16:51:19 -0600 Subject: [PATCH 002/112] themes/nanotech: Use the new built-in zsh color variables. --- themes/nanotech.zsh-theme | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/themes/nanotech.zsh-theme b/themes/nanotech.zsh-theme index eddb23c94..5d3331639 100644 --- a/themes/nanotech.zsh-theme +++ b/themes/nanotech.zsh-theme @@ -1,7 +1,7 @@ -PROMPT=' %{$fg_bold[green]%}%2c %{$fg_bold[blue]%}%{[%}%{$reset_color%} ' -RPROMPT='$(git_prompt_info) %{$fg[blue]%}] %{$fg[green]%}%D{%L:%M} %{$fg[yellow]%}%D{%p}%{$reset_color%} ' +PROMPT='%F{green}%2c%F{blue} [%f ' +RPROMPT='$(git_prompt_info) %F{blue}] %F{green}%D{%L:%M} %F{yellow}%D{%p}%f' -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_PREFIX="%F{yellow}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%f" +ZSH_THEME_GIT_PROMPT_DIRTY=" %F{red}*%f" ZSH_THEME_GIT_PROMPT_CLEAN="" From f624889aa4eacbd5f5f11ec02115abd59e567716 Mon Sep 17 00:00:00 2001 From: Julien Nicoulaud Date: Sat, 20 Nov 2010 18:06:23 +0100 Subject: [PATCH 003/112] Rename appearance.zsh so that it gets loaded after spectrum.zsh. Allows to use 256 colors in prompt themes. --- lib/{appearance.zsh => theme-and-appearance.zsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lib/{appearance.zsh => theme-and-appearance.zsh} (100%) diff --git a/lib/appearance.zsh b/lib/theme-and-appearance.zsh similarity index 100% rename from lib/appearance.zsh rename to lib/theme-and-appearance.zsh From b0c39ec7f1625fafd4d51166b19d38f583a3cf9b Mon Sep 17 00:00:00 2001 From: Julien Nicoulaud Date: Sat, 20 Nov 2010 18:07:45 +0100 Subject: [PATCH 004/112] Add my prompt theme --- themes/nicoulaj.zsh-theme | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 themes/nicoulaj.zsh-theme diff --git a/themes/nicoulaj.zsh-theme b/themes/nicoulaj.zsh-theme new file mode 100644 index 000000000..edcdb158d --- /dev/null +++ b/themes/nicoulaj.zsh-theme @@ -0,0 +1,43 @@ +#!/usr/bin/env zsh +# ------------------------------------------------------------------------------ +# Prompt for the Zsh shell: +# * One line. +# * VCS info on the right prompt. +# * Only shows the path on the left prompt by default. +# * Crops the path to a defined length and only shows the path relative to +# the current VCS repository root. +# * Wears a different color wether the last command succeeded/failed. +# * Shows user@hostname if connected through SSH. +# * Shows if logged in as root or not. +# ------------------------------------------------------------------------------ + +# Customizable parameters. +PROMPT_PATH_MAX_LENGTH=30 +PROMPT_DEFAULT_END=❯ +PROMPT_ROOT_END=❯❯❯ +PROMPT_SUCCESS_COLOR=$FG[071] +PROMPT_FAILURE_COLOR=$FG[124] +PROMPT_VCS_INFO_COLOR=$FG[242] + +# Set required options. +setopt promptsubst + +# Load required modules. +autoload -U add-zsh-hook +autoload -Uz vcs_info + +# Add hook for calling vcs_info before each command. +add-zsh-hook precmd vcs_info + +# Set vcs_info parameters. +zstyle ':vcs_info:*' enable hg bzr git +zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos. +zstyle ':vcs_info:*:*' unstagedstr '!' +zstyle ':vcs_info:*:*' stagedstr '+' +zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)" +zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c" +zstyle ':vcs_info:*:*' nvcsformats "%$PROMPT_PATH_MAX_LENGTH<..<%~%<<" "" + +# Define prompts. +PROMPT="%(0?.%{$PROMPT_SUCCESS_COLOR%}.%{$PROMPT_FAILURE_COLOR%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%$PROMPT_PATH_MAX_LENGTH<..<"'${vcs_info_msg_0_%%.}'"%<<%(!.$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} " +RPROMPT="%{$PROMPT_VCS_INFO_COLOR%}"'$vcs_info_msg_1_'"%{$FX[reset]%}" From 9b0a75ca84e9bb1956806f09ee7040ce8c0d647c Mon Sep 17 00:00:00 2001 From: Julien Nicoulaud Date: Sat, 20 Nov 2010 20:12:19 +0100 Subject: [PATCH 005/112] Avoid duplicate path cropping --- themes/nicoulaj.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/nicoulaj.zsh-theme b/themes/nicoulaj.zsh-theme index edcdb158d..333aa5e70 100644 --- a/themes/nicoulaj.zsh-theme +++ b/themes/nicoulaj.zsh-theme @@ -36,7 +36,7 @@ zstyle ':vcs_info:*:*' unstagedstr '!' zstyle ':vcs_info:*:*' stagedstr '+' zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)" zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c" -zstyle ':vcs_info:*:*' nvcsformats "%$PROMPT_PATH_MAX_LENGTH<..<%~%<<" "" +zstyle ':vcs_info:*:*' nvcsformats "%~" "" # Define prompts. PROMPT="%(0?.%{$PROMPT_SUCCESS_COLOR%}.%{$PROMPT_FAILURE_COLOR%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%$PROMPT_PATH_MAX_LENGTH<..<"'${vcs_info_msg_0_%%.}'"%<<%(!.$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} " From d230d2e519fb4720671ff7acf2b5a05f640eaebe Mon Sep 17 00:00:00 2001 From: Igor Vinokurov Date: Thu, 2 Dec 2010 03:49:13 +0300 Subject: [PATCH 006/112] gentoo-like theme w/ git_prompt_info --- themes/gentoo.zsh-theme | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 themes/gentoo.zsh-theme diff --git a/themes/gentoo.zsh-theme b/themes/gentoo.zsh-theme new file mode 100644 index 000000000..cba143d42 --- /dev/null +++ b/themes/gentoo.zsh-theme @@ -0,0 +1,4 @@ +PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%#%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="(" +ZSH_THEME_GIT_PROMPT_SUFFIX=") " From 0e2d289fffbf15c95c5401aa484ad63a51e88e3c Mon Sep 17 00:00:00 2001 From: Daniel Karlsson Date: Fri, 3 Dec 2010 15:51:34 +0100 Subject: [PATCH 007/112] Added new kardan theme. --- themes/kardan.zsh-theme | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 themes/kardan.zsh-theme diff --git a/themes/kardan.zsh-theme b/themes/kardan.zsh-theme new file mode 100644 index 000000000..f2b036fde --- /dev/null +++ b/themes/kardan.zsh-theme @@ -0,0 +1,12 @@ +# Comment + +function get_host { + echo '@'`hostname`'' +} + +RPROMPT='%~$(git_prompt_info)$(get_host)' +export PS1='> ' + +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_PREFIX="(" +ZSH_THEME_GIT_PROMPT_SUFFIX=")" \ No newline at end of file From 17c6c0376084d09a6cf3d1260d65447ba179c694 Mon Sep 17 00:00:00 2001 From: Daniel Karlsson Date: Fri, 3 Dec 2010 15:58:18 +0100 Subject: [PATCH 008/112] Updated the PROMT. --- themes/kardan.zsh-theme | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/kardan.zsh-theme b/themes/kardan.zsh-theme index f2b036fde..fd6586a9d 100644 --- a/themes/kardan.zsh-theme +++ b/themes/kardan.zsh-theme @@ -1,11 +1,11 @@ -# Comment +# Simple theme based on my old zsh settings. function get_host { echo '@'`hostname`'' } -RPROMPT='%~$(git_prompt_info)$(get_host)' -export PS1='> ' +PROMPT='> ' +RPROMPT='%~$(git_prompt_info)$(get_host)' ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}✗%{$reset_color%}" ZSH_THEME_GIT_PROMPT_PREFIX="(" From f2d60d3023b006e5e31928ed36491f4639a7a022 Mon Sep 17 00:00:00 2001 From: Jake Bell Date: Sun, 19 Dec 2010 21:08:21 -0600 Subject: [PATCH 009/112] Updating theunraveler theme to include more detailed git info. --- themes/theunraveler.zsh-theme | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/themes/theunraveler.zsh-theme b/themes/theunraveler.zsh-theme index 4eec8e827..e4bfb79c5 100644 --- a/themes/theunraveler.zsh-theme +++ b/themes/theunraveler.zsh-theme @@ -1,6 +1,16 @@ -# Comment +# Comment -ZSH_THEME_GIT_PROMPT_PREFIX=' (git:' -ZSH_THEME_GIT_PROMPT_SUFFIX=')' +PROMPT='%{$fg[magenta]%}[%c] %{$reset_color%}' -PROMPT='%{$fg[magenta]%}[%c]$(git_prompt_info) $ %{$reset_color%}' \ No newline at end of file +RPROMPT='%{$fg[magenta]%}$(git_prompt_info)%{$reset_color%} $(git_prompt_status)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY="" +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[cyan]%} ✈" +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]%} ✱" \ No newline at end of file From 632181c3dc0930ddd147e11041f4ffe07b4ad18f Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Mon, 20 Dec 2010 11:13:46 -0300 Subject: [PATCH 010/112] Fixed typo --- plugins/gem/gem.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh index 65d3766f3..d4e5c6584 100644 --- a/plugins/gem/gem.plugin.zsh +++ b/plugins/gem/gem.plugin.zsh @@ -1,4 +1,4 @@ -# add brew completion function to path +# add gem completion function to path fpath=($ZSH/plugins/gem $fpath) autoload -U compinit compinit -i From 8edf417375fa8468008fbea78b7532125ea6bd83 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Mon, 20 Dec 2010 12:13:47 -0300 Subject: [PATCH 011/112] Aliased git checkout as `gco` --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d317d179d..09b1f16cc 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -8,6 +8,7 @@ alias gd='git diff | mate' alias gdv='git diff -w "$@" | vim -R -' alias gc='git commit -v' alias gca='git commit -v -a' +alias gco='git checkout' alias gb='git branch' alias gba='git branch -a' alias gcount='git shortlog -sn' From 960eb52366abe6e8951b8b20a9fb59ef6d50a3e8 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Mon, 20 Dec 2010 12:19:59 -0300 Subject: [PATCH 012/112] A rails3 plugin based on the rails plugin --- plugins/rails3/rails3.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/rails3/rails3.plugin.zsh diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh new file mode 100644 index 000000000..5c1930af3 --- /dev/null +++ b/plugins/rails3/rails3.plugin.zsh @@ -0,0 +1,12 @@ +alias rs='ruby script/rails server' +alias rg='ruby script/rails generate' +alias rd='ruby script/rails destroy' +alias rp='ruby script/rails plugin' +alias rdbm='rake db:migrate db:test:clone' +alias rc='ruby script/rails console' +alias rd='ruby script/rais server --debugger' +alias devlog='tail -f log/development.log' + +function remote_console() { + /usr/bin/env ssh $1 "( cd $2 && ruby script/rails console production )" +} From 6aa8ee2f515875e9a75b30b3a5734451f585a3f1 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Mon, 20 Dec 2010 12:50:55 -0300 Subject: [PATCH 013/112] Removed remote_console. It doesn't handle rvm, capistrano, and so on. --- plugins/rails3/rails3.plugin.zsh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index 5c1930af3..20ba0408c 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -6,7 +6,3 @@ alias rdbm='rake db:migrate db:test:clone' alias rc='ruby script/rails console' alias rd='ruby script/rais server --debugger' alias devlog='tail -f log/development.log' - -function remote_console() { - /usr/bin/env ssh $1 "( cd $2 && ruby script/rails console production )" -} From 1a8ceef514bc86f882adce1834bfab168afcb4d1 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Mon, 20 Dec 2010 12:57:23 -0300 Subject: [PATCH 014/112] Typo --- plugins/git/git.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 09b1f16cc..71a62819b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -27,7 +27,7 @@ function current_branch() { echo ${ref#refs/heads/} } -# these aliases take advangate of the previous function +# these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' alias ggpush='git push origin $(current_branch)' -alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' \ No newline at end of file +alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' From 2b03b95122361fa73e7651d1a06730ae95548a14 Mon Sep 17 00:00:00 2001 From: Derek Prior Date: Tue, 21 Dec 2010 14:28:40 -0500 Subject: [PATCH 015/112] Added function to mkdir and immediately change to it --- lib/directories.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 56d7a2316..bb114f615 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -36,5 +36,9 @@ cd () { alias md='mkdir -p' alias rd=rmdir +alias d='dirs -v' -alias d='dirs -v' \ No newline at end of file +# mkdir & cd to it +function mcd() { + mkdir -p "$1" && cd "$1"; +} \ No newline at end of file From ff0b25b745494d96ae06694321b2299991620b14 Mon Sep 17 00:00:00 2001 From: SuprDewd Date: Fri, 24 Dec 2010 22:20:57 +0000 Subject: [PATCH 016/112] Added a function to extract various archives. Also an alias for the function. --- lib/aliases.zsh | 2 ++ lib/functions.zsh | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index d2d3aed81..b47de5bde 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -21,3 +21,5 @@ alias ll='ls -l' alias sl=ls # often screw this up alias afind='ack-grep -il' + +alias x=extract diff --git a/lib/functions.zsh b/lib/functions.zsh index e3c0de43e..99b75409c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -37,3 +37,24 @@ function take() { mkdir -p $1 cd $1 } + +function extract() { + if [[ -f $1 ]]; then + case $1 in + *.tar.bz2) tar xvjf $1;; + *.tar.gz) tar xvzf $1;; + *.bz2) bunzip $1;; + *.rar) unrar $1;; + *.gz) gunzip $1;; + *.tar) tar xvf $1;; + *.tbz2) tar xvjf $1;; + *.tgz) tar xvzf $1;; + *.zip) unzip $1;; + *.Z) uncompress $1;; + *.7z) 7z x $1;; + *) echo "'$1' cannot be extracted via >extract<";; + esac + else + echo "'$1' is not a valid file" + fi +} From f0136f2aec4efdd11e976ddbbfd204ca5e113498 Mon Sep 17 00:00:00 2001 From: SuprDewd Date: Sat, 25 Dec 2010 13:28:16 +0000 Subject: [PATCH 017/112] Support for more archive formats. --- lib/functions.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index 99b75409c..4246f8811 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -43,6 +43,8 @@ function extract() { case $1 in *.tar.bz2) tar xvjf $1;; *.tar.gz) tar xvzf $1;; + *.tar.xz) tar xvJf $1;; + *.tar.lzma) tar --lzma -xvf $1;; *.bz2) bunzip $1;; *.rar) unrar $1;; *.gz) gunzip $1;; From 943e09cd84baff55d36ebcfcf05b9fbfb4436a17 Mon Sep 17 00:00:00 2001 From: "Suraj N. Kurapati" Date: Tue, 28 Dec 2010 20:36:29 -0800 Subject: [PATCH 018/112] add "fishy" theme to emulate Fish shell's prompt --- themes/fishy.zsh-theme | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 themes/fishy.zsh-theme diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme new file mode 100644 index 000000000..f22eda868 --- /dev/null +++ b/themes/fishy.zsh-theme @@ -0,0 +1,9 @@ +# ZSH Theme emulating the Fish shell's default prompt. + +local user_color='green'; [ $UID -eq 0 ] && user_color='red' +PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) ' +PROMPT2='%{$fg[red]%}\ %{$reset_color%}' +RPS1='%(?..%{$fg[red]%}%? ↵%{$reset_color%})$(git_prompt_info)' + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[cyan]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 8d2b9d10e5105f9e0af0700e427e0567011ab45b Mon Sep 17 00:00:00 2001 From: "Suraj N. Kurapati" Date: Sat, 8 Jan 2011 18:15:57 -0800 Subject: [PATCH 019/112] avoid forking subshell to test if user is root --- themes/afowler.zsh-theme | 2 +- themes/arrow.zsh-theme | 2 +- themes/clean.zsh-theme | 2 +- themes/dst.zsh-theme | 2 +- themes/jreese.zsh-theme | 2 +- themes/philips.zsh-theme | 2 +- themes/pmcgee.zsh-theme | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/themes/afowler.zsh-theme b/themes/afowler.zsh-theme index b5a9bb173..3a4753fc1 100644 --- a/themes/afowler.zsh-theme +++ b/themes/afowler.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi +if [ $UID -eq 0 ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" diff --git a/themes/arrow.zsh-theme b/themes/arrow.zsh-theme index a23efd1d7..d62dcdcb9 100644 --- a/themes/arrow.zsh-theme +++ b/themes/arrow.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="yellow"; fi +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="yellow"; fi PROMPT='%{$fg[$NCOLOR]%}%c ➤ %{$reset_color%}' RPROMPT='%{$fg[$NCOLOR]%}%p $(git_prompt_info)%{$reset_color%}' diff --git a/themes/clean.zsh-theme b/themes/clean.zsh-theme index 95f532a82..7ee29cb8c 100644 --- a/themes/clean.zsh-theme +++ b/themes/clean.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="white"; fi +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="white"; fi PROMPT='%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} $(git_prompt_info)%(!.#.$) ' RPROMPT='[%*]' diff --git a/themes/dst.zsh-theme b/themes/dst.zsh-theme index fa0d9cb06..3e2539d57 100644 --- a/themes/dst.zsh-theme +++ b/themes/dst.zsh-theme @@ -5,7 +5,7 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" ZSH_THEME_GIT_PROMPT_CLEAN="" function prompt_char { - if [ "$(whoami)" = "root" ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi + if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi } PROMPT='%(?, ,%{$fg[red]%}FAIL%{$reset_color%} diff --git a/themes/jreese.zsh-theme b/themes/jreese.zsh-theme index 534664f11..0fa6b4ecd 100644 --- a/themes/jreese.zsh-theme +++ b/themes/jreese.zsh-theme @@ -1,6 +1,6 @@ # ZSH Theme - Preview: http://dl.dropbox.com/u/1552408/Screenshots/2010-04-08-oh-my-zsh.png -if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" PROMPT='%{$fg[$NCOLOR]%}%n%{$fg[green]%}@%m%{$reset_color%} %~ \ diff --git a/themes/philips.zsh-theme b/themes/philips.zsh-theme index fa7c59035..e7ea51a2f 100644 --- a/themes/philips.zsh-theme +++ b/themes/philips.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi PROMPT='%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} $(git_prompt_info)%(!.#.$) ' RPROMPT='[%*]' diff --git a/themes/pmcgee.zsh-theme b/themes/pmcgee.zsh-theme index 4eb54df5b..e4e45c71a 100644 --- a/themes/pmcgee.zsh-theme +++ b/themes/pmcgee.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi PROMPT=' %{$fg[$NCOLOR]%}%B%n@%m%b%{$reset_color%} %{$fg[white]%}%B${PWD/#$HOME/~}%b%{$reset_color%} From 8294cf44d1d348fd1590ee28b5be8483fb012153 Mon Sep 17 00:00:00 2001 From: Michael Komitee Date: Sat, 8 Jan 2011 23:34:47 -0500 Subject: [PATCH 020/112] Postponing sourcing of the theme until after local customizations --- lib/appearance.zsh | 2 -- oh-my-zsh.sh | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/appearance.zsh b/lib/appearance.zsh index ffee52b5e..aec67721a 100644 --- a/lib/appearance.zsh +++ b/lib/appearance.zsh @@ -34,5 +34,3 @@ ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is c # Setup the prompt with pretty colors setopt prompt_subst -# Load the theme -source "$ZSH/themes/$ZSH_THEME.zsh-theme" \ No newline at end of file diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 848e48eb5..291772dfe 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -14,6 +14,9 @@ for config_file ($ZSH/custom/*.zsh) source $config_file plugin=${plugin:=()} for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh +# Load the theme +source "$ZSH/themes/$ZSH_THEME.zsh-theme" + # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] then From f5c45c23ee7958395e80f97228c4267bfd0d4e6c Mon Sep 17 00:00:00 2001 From: Danny Tatom Date: Sat, 8 Jan 2011 21:07:03 -0800 Subject: [PATCH 021/112] Added lambda theme --- themes/lambda.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 themes/lambda.zsh-theme diff --git a/themes/lambda.zsh-theme b/themes/lambda.zsh-theme new file mode 100644 index 000000000..63292d331 --- /dev/null +++ b/themes/lambda.zsh-theme @@ -0,0 +1,6 @@ +# ZSH Theme - Preview: http://cl.ly/350F0F0k1M2y3A2i3p1S + +PROMPT='λ %~/ $(git_prompt_info)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " From b61cae150a5f693ed1e2bd4a292feea899058e44 Mon Sep 17 00:00:00 2001 From: Francesco Lazzarino Date: Mon, 10 Jan 2011 10:16:04 -0500 Subject: [PATCH 022/112] theme based on afowler with vi-mode support --- themes/flazz.zsh-theme | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 themes/flazz.zsh-theme diff --git a/themes/flazz.zsh-theme b/themes/flazz.zsh-theme new file mode 100644 index 000000000..280794f2b --- /dev/null +++ b/themes/flazz.zsh-theme @@ -0,0 +1,19 @@ +if [ "$(whoami)" = "root" ] +then CARETCOLOR="red" +else CARETCOLOR="blue" +fi + +local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + +PROMPT='%m%{${fg_bold[magenta]}%} :: %{$reset_color%}%{${fg[green]}%}%3~ $(git_prompt_info)%{${fg_bold[$CARETCOLOR]}%}%#%{${reset_color}%} ' + +RPS1='$(vi_mode_prompt_info) ${return_code}' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[cyan]%}‹" +ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}" + +MODE_INDICATOR="%{$fg_bold[magenta]%}<%{$reset_color%}%{$fg[magenta]%}<<%{$reset_color%}" + +# TODO use 265 colors +#MODE_INDICATOR="$FX[bold]$FG[020]<$FX[no_bold]%{$fg[blue]%}<<%{$reset_color%}" +# TODO use two lines if git From 77d05fe8ab0f1b35af9332e889e384f935ce08f9 Mon Sep 17 00:00:00 2001 From: Robin Ramael Date: Mon, 10 Jan 2011 17:01:11 +0100 Subject: [PATCH 023/112] Made git ignore everything in custom, not only the .zsh files. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f84db6dc2..8d19d100c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ locals.zsh log/.zsh_history projects.zsh -custom/*.zsh +custom/* !custom/example.zsh \ No newline at end of file From 664b97a3c8fc167bda2c64e48b18b27de8dce4cd Mon Sep 17 00:00:00 2001 From: Robin Ramael Date: Mon, 10 Jan 2011 18:18:31 +0100 Subject: [PATCH 024/112] Added svn info in prompt with plugin. If the svn plugin is used, svn info (repo name and wether the repo is dirty) is displayed in the prompt like with git. Just lke with git, the colors can be manipulated with variables (see awesomepanda theme for example). --- plugins/svn/svn.plugin.zsh | 42 +++++++++++++++++++++++++++++++++++ themes/awesomepanda.zsh-theme | 18 +++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/svn/svn.plugin.zsh create mode 100644 themes/awesomepanda.zsh-theme diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh new file mode 100644 index 000000000..45d461306 --- /dev/null +++ b/plugins/svn/svn.plugin.zsh @@ -0,0 +1,42 @@ +function svn_prompt_info { + if [[ -d .svn ]]; then + echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ +$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" + fi +} + + +function in_svn() { + if [[ -d .svn ]]; then + echo 1 + fi +} + +function svn_get_repo_name { + if [ is_svn ]; then + svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT + + svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//" + fi +} + +function svn_get_rev_nr { + if [ is_svn ]; then + svn info 2> /dev/null | sed -n s/Revision:\ //p + fi +} + +function svn_dirty_choose { + if [ is_svn ]; then + s=$(svn status 2>/dev/null) + if [ $s ]; then + echo $1 + else + echo $2 + fi + fi +} + +function svn_dirty { + svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN +} \ No newline at end of file diff --git a/themes/awesomepanda.zsh-theme b/themes/awesomepanda.zsh-theme new file mode 100644 index 000000000..411b89837 --- /dev/null +++ b/themes/awesomepanda.zsh-theme @@ -0,0 +1,18 @@ +# 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%}' + +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 From bcc235e1420f39a0dbd8a7672dffc0f0c81e9b53 Mon Sep 17 00:00:00 2001 From: Robin Ramael Date: Mon, 10 Jan 2011 17:34:38 +0100 Subject: [PATCH 025/112] Added an option to remove file afterwards. --- lib/functions.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index 4246f8811..914f2ef25 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -39,6 +39,12 @@ function take() { } function extract() { + unset REMOVE_ARCHIVE + + if test "$1" = "-r"; then + REMOVE=1 + shift + fi if [[ -f $1 ]]; then case $1 in *.tar.bz2) tar xvjf $1;; @@ -56,7 +62,14 @@ function extract() { *.7z) 7z x $1;; *) echo "'$1' cannot be extracted via >extract<";; esac + + if [[ $REMOVE_ARCHIVE -eq 1 ]]; then + echo removing "$1"; + /bin/rm "$1"; + fi + else echo "'$1' is not a valid file" fi } + From 26614b3478306d9f23ae9d817e70c1acba9b43de Mon Sep 17 00:00:00 2001 From: Stephen Middleton Date: Thu, 13 Jan 2011 23:52:41 -0600 Subject: [PATCH 026/112] add Rixius-Theme --- themes/rixius.zsh-theme | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 themes/rixius.zsh-theme diff --git a/themes/rixius.zsh-theme b/themes/rixius.zsh-theme new file mode 100644 index 000000000..2a283ebca --- /dev/null +++ b/themes/rixius.zsh-theme @@ -0,0 +1,16 @@ +function collapse_pwd { + echo $(pwd | sed -e "s,^$HOME,~,") +} +function prompt_char { + git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return + echo "%{$fg[red]%}≈%{$reset_color%}" +} + +PROMPT=' +%{$fg[magenta]%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info) +$(prompt_char) ' + +ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!" +ZSH_THEME_GIT_PROMPT_CLEAN="" \ No newline at end of file From 5cca63a770ed78e17ffdf13bfbed5defc56edb92 Mon Sep 17 00:00:00 2001 From: Stephen Middleton Date: Fri, 14 Jan 2011 00:05:06 -0600 Subject: [PATCH 027/112] changes to theme --- themes/rixius.zsh-theme | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/themes/rixius.zsh-theme b/themes/rixius.zsh-theme index 2a283ebca..322bdad24 100644 --- a/themes/rixius.zsh-theme +++ b/themes/rixius.zsh-theme @@ -6,11 +6,10 @@ function prompt_char { echo "%{$fg[red]%}≈%{$reset_color%}" } -PROMPT=' -%{$fg[magenta]%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info) +PROMPT='%{$fg[magenta]%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info) $(prompt_char) ' ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!" -ZSH_THEME_GIT_PROMPT_CLEAN="" \ No newline at end of file +ZSH_THEME_GIT_PROMPT_DIRTY="%{$bg[white]%}%{$fg[red]%}!%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$bg[white]%}%{$fg[red]%}√%{$reset_color%}" \ No newline at end of file From c58942d3b25cf25867e3096e5f52f1c256647d8a Mon Sep 17 00:00:00 2001 From: Stephen Middleton Date: Fri, 14 Jan 2011 01:26:31 -0600 Subject: [PATCH 028/112] theme changes --- themes/rixius.zsh-theme | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/themes/rixius.zsh-theme b/themes/rixius.zsh-theme index 322bdad24..8837d8840 100644 --- a/themes/rixius.zsh-theme +++ b/themes/rixius.zsh-theme @@ -2,14 +2,18 @@ function collapse_pwd { echo $(pwd | sed -e "s,^$HOME,~,") } function prompt_char { - git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return - echo "%{$fg[red]%}≈%{$reset_color%}" + echo -n "%{$bg[white]%}%{$fg[red]%}" + git branch >/dev/null 2>/dev/null && echo "±%{$reset_color%}" && return + echo "≥%{$reset_color%}" } +RIXIUS_PRE="%{$bg[white]%}%{$fg[red]%}" -PROMPT='%{$fg[magenta]%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info) +PROMPT=' +%{$RIXIUS_PRE%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info) $(prompt_char) ' +RPROMPT='%{$RIXIUS_PRE%}%T%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$bg[white]%}%{$fg[red]%}!%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_CLEAN="%{$bg[white]%}%{$fg[red]%}√%{$reset_color%}" \ No newline at end of file +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$RIXIUS_PRE%}!%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$RIXIUS_PRE%}√%{$reset_color%}" \ No newline at end of file From 277f664df33d4a9078bb55e7ddf0a669ca63c462 Mon Sep 17 00:00:00 2001 From: Stephen Middleton Date: Fri, 14 Jan 2011 01:29:24 -0600 Subject: [PATCH 029/112] Personal Style --- themes/rixius.zsh-theme | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/themes/rixius.zsh-theme b/themes/rixius.zsh-theme index 8837d8840..3e5381425 100644 --- a/themes/rixius.zsh-theme +++ b/themes/rixius.zsh-theme @@ -1,3 +1,8 @@ +# /|/ Code by Stephen +# /|/ "Rixius" Middleton +# +# name in folder (github) +# ± if in github repo, or ≥ if otherwise Time in 24-hour format is on right. function collapse_pwd { echo $(pwd | sed -e "s,^$HOME,~,") } From e7c8673a45b9a65a672d2bb8e4e0d3f54a910c7c Mon Sep 17 00:00:00 2001 From: Stephen Middleton Date: Fri, 14 Jan 2011 01:31:21 -0600 Subject: [PATCH 030/112] added newline --- themes/rixius.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/rixius.zsh-theme b/themes/rixius.zsh-theme index 3e5381425..c0c5c9c71 100644 --- a/themes/rixius.zsh-theme +++ b/themes/rixius.zsh-theme @@ -21,4 +21,4 @@ RPROMPT='%{$RIXIUS_PRE%}%T%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY=" %{$RIXIUS_PRE%}!%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_CLEAN=" %{$RIXIUS_PRE%}√%{$reset_color%}" \ No newline at end of file +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$RIXIUS_PRE%}√%{$reset_color%}" From faac3ba8fcad6ad1742f82a7d508a37c0c70d809 Mon Sep 17 00:00:00 2001 From: "Renaud (Nel) Morvan" Date: Sun, 30 Jan 2011 08:21:49 +0100 Subject: [PATCH 031/112] Refactor window and tab title in tty Term window title and tab title are now skinable Tab title can be different from window title (when supported by term) Default theme is optimized of usuability (no %u@%m: $~ in a 10 char tab) Cleanup code duplication and add comment for supported terms On osX it works great on iterm, and is decent once you tweak Terminal pref Tested under GNU screen, iTerm and Apple Terminal, need to be tested on linux TODO implement Konsole support (via dbus) --- lib/functions.zsh | 23 ---------------------- lib/termsupport.zsh | 47 +++++++++++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 44 deletions(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index 914f2ef25..6f5d015f7 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,26 +1,3 @@ -## fixme, i duplicated this in xterms - oops -function title { - if [[ $TERM == "screen" ]]; then - # Use these two for GNU Screen: - print -nR $'\033k'$1$'\033'\\\ - - print -nR $'\033]0;'$2$'\a' - elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]]; then - # Use this one instead for XTerms: - print -nR $'\033]0;'$*$'\a' - fi -} - -function precmd { - title zsh "$PWD" -} - -function preexec { - emulate -L zsh - local -a cmd; cmd=(${(z)1}) - title $cmd[1]:t "$cmd[2,-1]" -} - function zsh_stats() { history | awk '{print $2}' | sort | uniq -c | sort -rn | head } diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index fef978748..e1e536690 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -1,21 +1,26 @@ -case "$TERM" in - xterm*|rxvt*) - preexec () { - print -Pn "\e]0;%n@%m: $1\a" # xterm - } - precmd () { - print -Pn "\e]0;%n@%m: %~\a" # xterm - } - ;; - screen*) - preexec () { - local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} - echo -ne "\ek$CMD\e\\" - print -Pn "\e]0;%n@%m: $1\a" # xterm - } - precmd () { - echo -ne "\ekzsh\e\\" - print -Pn "\e]0;%n@%m: %~\a" # xterm - } - ;; -esac \ No newline at end of file +#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 +#Limited support for Apple Terminal (Terminal can't set window or tab separately) +function title { + if [[ "$TERM" == "screen" ]]; then + print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars + elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then + print -Pn "\e]2;$2\a" #set window name + print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) + fi +} + +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 +function precmd { + title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE +} + +#Appears at the beginning of (and during) of command execution +function preexec { + local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd + title "$CMD" "%100>...>$2%<<" +} From 051fb5f1d5d0c72812989bd4dfd0be33f43d75ad Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Fri, 4 Feb 2011 01:37:39 +1100 Subject: [PATCH 032/112] Added time since last commit to Soliah theme and changed some colours. --- themes/Soliah.zsh-theme | 63 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/themes/Soliah.zsh-theme b/themes/Soliah.zsh-theme index 7ad876d41..1c0ab3cc9 100644 --- a/themes/Soliah.zsh-theme +++ b/themes/Soliah.zsh-theme @@ -1,6 +1,63 @@ -PROMPT='%{$fg[blue]%}%B%20~%b%{$reset_color%}%{$(git_prompt_info)%} $ ' +PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(git_prompt_info) +$ ' -ZSH_THEME_GIT_PROMPT_PREFIX="(%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})" -ZSH_THEME_GIT_PROMPT_DIRTY="*%{$reset_color%}" +# Text to display if the branch is dirty +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" + +# Text to display if the branch is clean +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Colors vary depending on time lapsed. +ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}" +ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}" + +# Determine the time since last commit. If branch is clean, +# use a neutral color, otherwise colors will vary according to time. +function git_time_since_commit() { + if git rev-parse --git-dir > /dev/null 2>&1; then + # Only proceed if there is actually a commit. + if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then + # Get the last commit. + last_commit=`git log --pretty=format:'%at' -1 2> /dev/null` + now=`date +%s` + seconds_since_last_commit=$((now-last_commit)) + + # Totals + MINUTES=$((seconds_since_last_commit / 60)) + HOURS=$((seconds_since_last_commit/3600)) + + # Sub-hours and sub-minutes + DAYS=$((seconds_since_last_commit / 86400)) + SUB_HOURS=$((HOURS % 24)) + SUB_MINUTES=$((MINUTES % 60)) + + if [[ -n $(git status -s 2> /dev/null) ]]; then + if [ "$MINUTES" -gt 30 ]; then + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" + elif [ "$MINUTES" -gt 10 ]; then + COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM" + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT" + fi + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" + fi + + if [ "$HOURS" -gt 24 ]; then + echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + elif [ "$MINUTES" -gt 60 ]; then + echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + else + echo "($COLOR${MINUTES}m%{$reset_color%}|" + fi + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" + echo "($COLOR~|" + fi + fi +} From ae8b3b6dbaa444a1b08a63cadabaf3f1781b7c11 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 3 Feb 2011 16:47:08 -0500 Subject: [PATCH 033/112] Added sorin oh-my-zsh theme. --- themes/sorin.zsh-theme | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 themes/sorin.zsh-theme diff --git a/themes/sorin.zsh-theme b/themes/sorin.zsh-theme new file mode 100644 index 000000000..601dbe5d7 --- /dev/null +++ b/themes/sorin.zsh-theme @@ -0,0 +1,48 @@ +# ------------------------------------------------------------------------------ +# FILE: sorin.zsh-theme +# DESCRIPTION: oh-my-zsh theme file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.2 +# SCREENSHOT: http://i.imgur.com/aipDQ.png +# ------------------------------------------------------------------------------ + + +if [[ "$TERM" != "dumb" ]] && [[ "$DISABLE_LS_COLORS" != "true" ]]; then + MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" + local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" + + PROMPT='%{$fg[cyan]%}%c$(git_prompt_info) %(!.%{$fg_bold[red]%}#.%{$fg_bold[green]%}❯)%{$reset_color%} ' + + ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue]%}git%{$reset_color%}:%{$fg[red]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + ZSH_THEME_GIT_PROMPT_DIRTY="" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}' + + ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚" + ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹" + ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖" + ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜" + ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═" + ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" +else + MODE_INDICATOR="❮❮❮" + local return_status="%(?::⏎)" + + PROMPT='%c$(git_prompt_info) %(!.#.❯) ' + + ZSH_THEME_GIT_PROMPT_PREFIX=" git:" + ZSH_THEME_GIT_PROMPT_SUFFIX="" + ZSH_THEME_GIT_PROMPT_DIRTY="" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + RPROMPT='${return_status}$(git_prompt_status)' + + ZSH_THEME_GIT_PROMPT_ADDED=" ✚" + ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹" + ZSH_THEME_GIT_PROMPT_DELETED=" ✖" + ZSH_THEME_GIT_PROMPT_RENAMED=" ➜" + ZSH_THEME_GIT_PROMPT_UNMERGED=" ═" + ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭" +fi From cc90e3aa06cc3de32e4679dcccd0f00a2a4bdf79 Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Fri, 4 Feb 2011 11:33:20 +1100 Subject: [PATCH 034/112] Fixed auto update. Paramater substitution instead of command subsitution was being used causing the calculation of time since last check to be incorrect. --- tools/check_for_upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index c59ebaed4..4643739ca 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -16,7 +16,7 @@ then _update_zsh_update && return 0; fi - epoch_diff=$((${_current_epoch} - $LAST_EPOCH)) + epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) if [ $epoch_diff -gt 6 ] then echo "[Oh My Zsh] Would you like to check for updates?" From 90a9a5f251b2273735b58be55014d94582f1db91 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 3 Feb 2011 23:24:33 -0500 Subject: [PATCH 035/112] Added modified while newly added and type change detection to git prompt modified status. --- lib/git.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/git.zsh b/lib/git.zsh index 75fdc1f9c..8512de8a4 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -26,6 +26,10 @@ git_prompt_status() { fi if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" + elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" + elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" fi if $(echo "$INDEX" | grep '^R ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS" From 6b5c4e27b24f0652e7e53b6abfe9634589271572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadas=20Tamo=C5=A1auskas?= Date: Sun, 13 Feb 2011 11:05:12 +0000 Subject: [PATCH 036/112] fixed typo in rails3 plugin and added one alias for migrating and redoing migration if it was successful --- plugins/rails3/rails3.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index 20ba0408c..6bf2ba088 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -3,6 +3,8 @@ alias rg='ruby script/rails generate' alias rd='ruby script/rails destroy' alias rp='ruby script/rails plugin' alias rdbm='rake db:migrate db:test:clone' +alias rdbmr='rake db:migrate && rake db:migrate:redo' alias rc='ruby script/rails console' -alias rd='ruby script/rais server --debugger' +alias rd='ruby script/rails server --debugger' alias devlog='tail -f log/development.log' + From ab1cbe9038bee71bae1d5b7ce1d8cd9f6a94d7f3 Mon Sep 17 00:00:00 2001 From: Wim Date: Mon, 14 Feb 2011 01:19:01 -0800 Subject: [PATCH 037/112] Should use https for all GitHub urls. --- README.textile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.textile b/README.textile index 8b1b6875a..0659aded8 100644 --- a/README.textile +++ b/README.textile @@ -8,7 +8,7 @@ h2. Setup h3. The automatic installer... (do you trust me?) -@wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@ +@wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@ h3. The manual way @@ -38,7 +38,7 @@ h2. Usage * enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible) ** example: @plugins=(git osx ruby)@ * Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@. -** Take a look at the "current themes":http://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_. +** Take a look at the "current themes":https://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_. * much much more... take a look at @lib/@ what _Oh My Zsh_ offers... h2. Useful From 6b610d7dd80ab6cf1142bc615931c17c41395f00 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Tue, 15 Feb 2011 11:27:25 -0800 Subject: [PATCH 038/112] Add bundler plugin with aliases. --- plugins/bundler/bundler.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/bundler/bundler.plugin.zsh diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh new file mode 100644 index 000000000..fb40e2cec --- /dev/null +++ b/plugins/bundler/bundler.plugin.zsh @@ -0,0 +1,3 @@ +alias be="bundle exec" +alias bi="bundle install" +alias bu="bundle update" From 4b7038f8f46f842df02acdce9b8fb21f6f2b3050 Mon Sep 17 00:00:00 2001 From: Murilo Soares Pereira Date: Tue, 23 Nov 2010 02:05:33 -0200 Subject: [PATCH 039/112] Added my theme. --- themes/murilo.zsh-theme | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 themes/murilo.zsh-theme diff --git a/themes/murilo.zsh-theme b/themes/murilo.zsh-theme new file mode 100644 index 000000000..310357b45 --- /dev/null +++ b/themes/murilo.zsh-theme @@ -0,0 +1,14 @@ +local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" +local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}' +local current_dir='%{$terminfo[bold]$fg[blue]%}%~%{$reset_color%}' +local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info)%{$reset_color%}' +local git_branch='%{$fg[blue]%}$(git_prompt_info)%{$reset_color%}' + +PROMPT="${user_host}:${current_dir} ${rvm_ruby} +${git_branch} %B$%b " +RPS1="${return_code}" + +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%}" From e0ab7f9fb5774381d846cd90d06a501ec91a3ee9 Mon Sep 17 00:00:00 2001 From: Murilo Soares Pereira Date: Wed, 24 Nov 2010 02:22:55 -0200 Subject: [PATCH 040/112] Renamed theme. --- themes/{murilo.zsh-theme => murilasso.zsh-theme} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename themes/{murilo.zsh-theme => murilasso.zsh-theme} (100%) diff --git a/themes/murilo.zsh-theme b/themes/murilasso.zsh-theme similarity index 100% rename from themes/murilo.zsh-theme rename to themes/murilasso.zsh-theme From c52fea808210bb4f81915306855b6bd00a5fe219 Mon Sep 17 00:00:00 2001 From: Ben Langfeld Date: Fri, 18 Feb 2011 12:17:00 +0000 Subject: [PATCH 041/112] Make a cleaner version of the OS X tab function --- plugins/osx/osx.plugin.zsh | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index fce88c796..eb995eb2e 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,11 +1,32 @@ +function savepath() { + pwd > ~/.current_path~ +} + function tab() { - osascript 2>/dev/null </dev/null < Date: Fri, 18 Feb 2011 12:48:27 +0000 Subject: [PATCH 042/112] Add iTerm version of tab function (itab) --- plugins/osx/osx.plugin.zsh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index eb995eb2e..81eed5e92 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -30,3 +30,28 @@ end do_submenu do_submenu("Terminal", "Shell", "New Tab", 1) EOF } + +function itab() { +savepath +osascript >/dev/null < Date: Tue, 1 Mar 2011 00:21:49 -0500 Subject: [PATCH 043/112] ssh-agent plugin now ends in "-$HOST" so an agent is started properly with nfs shared homes. --- plugins/ssh-agent/ssh-agent.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index ce0d645c1..0efc4546f 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -1,7 +1,7 @@ # Based on code from Joseph M. Reagle # http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html -local SSH_ENV=$HOME/.ssh/environment +local SSH_ENV=$HOME/.ssh/environment-$HOST function start_agent { /usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} From c3a58b00040018743ead1e6672910433fc1ca7c2 Mon Sep 17 00:00:00 2001 From: Woody Gilk Date: Fri, 11 Mar 2011 21:44:12 -0600 Subject: [PATCH 044/112] Enable alias completion, do not limit completion to just files --- lib/completion.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/completion.zsh b/lib/completion.zsh index 9c2dfecca..e8e9776a5 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -4,6 +4,7 @@ unsetopt menu_complete # do not autoselect the first completion entry unsetopt flowcontrol setopt auto_menu # show completion menu on succesive tab press setopt complete_in_word +setopt complete_aliases setopt always_to_end WORDCHARS='' From a2d0bd7c296706b3a2f6b0125ab79748a95bb90c Mon Sep 17 00:00:00 2001 From: Alessandro Ghedini Date: Sat, 12 Mar 2011 16:23:55 +0100 Subject: [PATCH 045/112] add 'lol' plugin (based on lolbash) --- plugins/lol/lol.plugin.zsh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 plugins/lol/lol.plugin.zsh diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh new file mode 100644 index 000000000..a7153bb57 --- /dev/null +++ b/plugins/lol/lol.plugin.zsh @@ -0,0 +1,26 @@ +# LOL!!1 +# Source: http://aur.archlinux.org/packages/lolbash/lolbash/lolbash.sh + +alias wtf='dmesg' +alias onoz='cat /var/log/errors.log' +alias rtfm='man' + +alias visible='echo' +alias invisible='cat' +alias moar='more' + +alias icanhas='mkdir' +alias donotwant='rm' +alias dowant='cp' +alias gtfo='mv' + +alias hai='cd' +alias plz='pwd' + +alias inur='locate' + +alias nomz='ps -aux' +alias nomnom='killall' + +alias cya='reboot' +alias kthxbai='halt' From a6b8bec8ecdb48a059f73e82a1df0bf3387beccc Mon Sep 17 00:00:00 2001 From: Alessandro Ghedini Date: Sat, 12 Mar 2011 16:24:20 +0100 Subject: [PATCH 046/112] add completion plugin 'cpanm' for cpanminus --- plugins/cpanm/_cpanm | 67 ++++++++++++++++++++++++++++++++++ plugins/cpanm/cpanm.plugin.zsh | 4 ++ 2 files changed, 71 insertions(+) create mode 100644 plugins/cpanm/_cpanm create mode 100644 plugins/cpanm/cpanm.plugin.zsh diff --git a/plugins/cpanm/_cpanm b/plugins/cpanm/_cpanm new file mode 100644 index 000000000..58451d35a --- /dev/null +++ b/plugins/cpanm/_cpanm @@ -0,0 +1,67 @@ +#compdef cpanm + +## +# cpanminus Z Shell completion script +## +# +# Current supported cpanm version: 1.4000 (Tue Mar 8 01:00:49 PST 2011) +# +# The latest code is always located at: +# https://github.com/rshhh/cpanminus/blob/master/etc/_cpanm +# + +local arguments curcontext="$curcontext" +typeset -A opt_args + + +arguments=( + +# Commands +# '(--install -i)'{--install,-i}'[Installs the modules]' + '(- :)--self-upgrade[Upgrades itself]' + '(- :)--info[Displays distribution info on CPAN]' + '(--installdeps)--installdeps[Only install dependencies]' + '(--look)--look[Download/unpack the distribution and then open the directory with your shell]' + '(- :)'{--help,-h}'[Displays help information]' + '(- :)'{--version,-V}'[Displays software version]' + +# Options + {--force,-f}'[Force install]' + {--notest,-n}'[Do not run unit tests]' + {--sudo,-S}'[sudo to run install commands]' + '(-v --verbose --quiet -q)'{--verbose,-v}'[Turns on chatty output]' + '(-q --quiet --verbose -v)'{--quiet,-q}'[Turns off all output]' + {--local-lib,-l}'[Specify the install base to install modules]' + {--local-lib-contained,-L}'[Specify the install base to install all non-core modules]' + '--mirror[Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)]:URLs:_urls' + '--mirror-only[Use the mirror\''s index file instead of the CPAN Meta DB]' + '--prompt[Prompt when configure/build/test fails]' + '--reinstall[Reinstall the distribution even if you already have the latest version installed]' + '--interactive[Turn on interactive configure]' + + '--scandeps[Scan the depencencies of given modules and output the tree in a text format]' + '--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)' + + '--save-dists[Specify the optional directory path to copy downloaded tarballs]' +# '--uninst-shadows[Uninstalls the shadow files of the distribution that you\''re installing]' + + '--auto-cleanup[Number of days that cpanm\''s work directories expire in. Defaults to 7]' + '(--no-man-pages)--man-pages[Generates man pages for executables (man1) and libraries (man3)]' + '(--man-pages)--no-man-pages[Do not generate man pages]' + + + # Note: Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default) cpanm tries LWP, + # Wget, cURL and HTTP::Tiny (in that order) and uses the first one available. + # (So that the exclusions are not enabled here for the completion) + '(--lwp)--lwp[Use LWP module to download stuff]' + '(--wget)--wget[Use GNU Wget (if available) to download stuff]' + '(--curl)--curl[Use cURL (if available) to download stuff]' + +# Other completions + '*:Local directory or archive:_files -/ -g "*.(tar.gz|tgz|tar.bz2|zip)(-.)"' + # '*::args: _normal' # this looks for default files (any files) +) +_arguments -s $arguments \ + && return 0 + +return 1 diff --git a/plugins/cpanm/cpanm.plugin.zsh b/plugins/cpanm/cpanm.plugin.zsh new file mode 100644 index 000000000..af52d3e8b --- /dev/null +++ b/plugins/cpanm/cpanm.plugin.zsh @@ -0,0 +1,4 @@ +# add cpanm completion function to path +fpath=($ZSH/plugins/cpanm $fpath) +autoload -U compinit +compinit -i From f90cb7e7b9f8a3743071d6d15ca441f293379517 Mon Sep 17 00:00:00 2001 From: Alessandro Ghedini Date: Sat, 12 Mar 2011 16:25:27 +0100 Subject: [PATCH 047/112] add 'deb' plugin with Debian's apt aliases --- plugins/deb/deb.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/deb/deb.plugin.zsh diff --git a/plugins/deb/deb.plugin.zsh b/plugins/deb/deb.plugin.zsh new file mode 100644 index 000000000..732294a87 --- /dev/null +++ b/plugins/deb/deb.plugin.zsh @@ -0,0 +1,12 @@ +# Aliases +alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ + --no-gui --disable-columns search" # search package +alias ad="sudo apt-get update" # update packages lists +alias au="sudo apt-get update && \ + sudo apt-get dselect-upgrade" # upgrade packages +alias ai="sudo apt-get install" # install package +alias ar="sudo apt-get remove --purge && \ + sudo apt-get autoremove --purge" # remove package +alias ap="apt-cache policy" # apt policy +alias av="apt-cache show" # show package info +alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache From fa344733e5d7cee33e4c3ba6a9a7241c7b6377ca Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 13 Mar 2011 16:08:12 -0600 Subject: [PATCH 048/112] Add completion for port command --- plugins/macports/_port | 89 ++++++++++++++++++++++++++++ plugins/macports/macports.plugin.zsh | 5 ++ 2 files changed, 94 insertions(+) create mode 100644 plugins/macports/_port diff --git a/plugins/macports/_port b/plugins/macports/_port new file mode 100644 index 000000000..06d7fb426 --- /dev/null +++ b/plugins/macports/_port @@ -0,0 +1,89 @@ +#compdef port + +local subcmds + +# we cache the list of ports +# we shall use some cache policy to avoid problems with new ports +if (( ! $+portlist )); then + portlist=($(port echo all; echo "all current active inactive installed uninstalled outdated")) +fi + +subcmds=( +'activate' +'archive' +'build' +'cat' +'clean' +'configure' +'contents' +'deactivate' +'dependents' +'deps' +'destroot' +'dir' +'distcheck' +'distclean' +'dmg' +'echo' +'edit' +'extract' +'fetch' +'file' +'help' +'info' +'install' +'installed' +'list' +'livecheck' +'location' +'mpkg' +'outdated' +'patch' +'pkg' +'provides' +'rpmpackage' +'search' +'selfupdate' +'sync' +'test' +'unarchive' +'uninstall' +'upgrade' +'variants' +'version' +) + +_arguments -C \ +'-v[verbose mode (generate verbose messages)]' \ +'-d[debug mode (generate debugging messages)]' \ +'-q[quiet mode (suppress messages)]' \ +'-D[specify portdir]' \ +'-k[keep mode (do not autoclean after install)]' \ +'-n[dont follow dependencies in upgrade (only for upgrading)]' \ +'-a[upgrade all installed ports (only for upgrading)]' \ +'-u[uninstall non-active ports when upgrading and uninstalling]' \ +'-f[force mode (ignore state file)]' \ +'-s[source-only mode]' \ +'-b[binary-only mode]' \ +'-o[honor state files older than Portfile]' \ +'*::command:->command' \ +&& return 0 + +case $state in + command) + if ((CURRENT == 1)); then + state=subcommands + else + state=portname + fi + ;; +esac + +case $state in + subcommands) + _describe -t commands 'port commands' subcmds + ;; + portname) + _describe -t commands 'available ports' portlist + ;; +esac diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index 9564829b0..cbbc49265 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -5,3 +5,8 @@ alias psu="sudo port selfupdate" alias puni="sudo port uninstall inactive" alias puo="sudo port upgrade outdated" alias pup="psu && puo" + +# add macports completion function to path +fpath=($ZSH/plugins/macports $fpath) +autoload -U compinit +compinit -i From d4ea399b04ef57dd31097eadc316305d1e42a194 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 13 Mar 2011 17:10:13 -0600 Subject: [PATCH 049/112] Re-order title/tab setting to make window titles work on OSX terminal which doesn't support tabs titles. --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e1e536690..2843eb075 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -6,8 +6,8 @@ function title { if [[ "$TERM" == "screen" ]]; then print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]2;$2\a" #set window name print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) + print -Pn "\e]2;$2\a" #set window name fi } From 5bbd87a33380ab4fb9cab6688b11cb98faa61cd7 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Mon, 14 Mar 2011 01:43:33 -0400 Subject: [PATCH 050/112] add Perl plugins file --- plugins/perl/perl.plugin.zsh | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 plugins/perl/perl.plugin.zsh diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh new file mode 100644 index 000000000..f94c4195d --- /dev/null +++ b/plugins/perl/perl.plugin.zsh @@ -0,0 +1,62 @@ +# https://github.com/dbbolton +# +# Below are some useful Perl-related aliases/functions that I use with zsh. + + +# Aliases ################################################################### + +# perlbrew ######## +alias pbi='perlbrew install' +alias pbl='perlbrew list' +alias pbo='perlbrew off' +alias pbs='perlbrew switch' +alias pbu='perlbrew use' + +# Perl ############ + +# perldoc` +alias pd='perldoc' + +# use perl like awk/sed +alias ple='perl -wlne' + +# show the latest stable release of Perl +alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\' + + + +# Functions ################################################################# + +# 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 + + # if the file exists, just open it + [[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1 + + # if it doesn't, make it, and open it + [[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\ + "\n\n" > $1 && $EDITOR $1 +} + + +# pgs - Perl Global Substitution +# find pattern = 1st arg +# replace pattern = 2nd arg +# filename = 3rd arg +pgs() { # [find] [replace] [filename] + perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3" +} + + +# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files. +prep() { # [pattern] [filename unless STDOUT] + perl -nle 'print if /'"$1"'/;' $2 +} + +# say - append a newline to 'print' +say() { + print "$1\n" +} + From 6654d5dd9982fb2f67c49e87b8b242c3964537b7 Mon Sep 17 00:00:00 2001 From: Tom Kirchner Date: Tue, 15 Mar 2011 00:41:51 +0000 Subject: [PATCH 051/112] Make personal theme based on dst --- themes/tjkirch.zsh-theme | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 themes/tjkirch.zsh-theme diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme new file mode 100644 index 000000000..3e2539d57 --- /dev/null +++ b/themes/tjkirch.zsh-theme @@ -0,0 +1,16 @@ + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +function prompt_char { + if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi +} + +PROMPT='%(?, ,%{$fg[red]%}FAIL%{$reset_color%} +) +%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) +%_ $(prompt_char) ' + +RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' From 1b7868adca07d4a77b0d5b15d305eb6e15be9fe7 Mon Sep 17 00:00:00 2001 From: Tom Kirchner Date: Tue, 15 Mar 2011 00:42:12 +0000 Subject: [PATCH 052/112] Remove unnecessary whitespace --- themes/tjkirch.zsh-theme | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme index 3e2539d57..5c5364002 100644 --- a/themes/tjkirch.zsh-theme +++ b/themes/tjkirch.zsh-theme @@ -1,4 +1,3 @@ - ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" From e1f37e311fe895916a5e821266617ddb3f26fef1 Mon Sep 17 00:00:00 2001 From: Tom Kirchner Date: Tue, 15 Mar 2011 00:42:51 +0000 Subject: [PATCH 053/112] Sweet lightning bolt on uncommitted git changes --- themes/tjkirch.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme index 5c5364002..1a93502f8 100644 --- a/themes/tjkirch.zsh-theme +++ b/themes/tjkirch.zsh-theme @@ -1,6 +1,6 @@ ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡" ZSH_THEME_GIT_PROMPT_CLEAN="" function prompt_char { From cb2362c006b25f8f2c655a50999c57ae48597c6b Mon Sep 17 00:00:00 2001 From: Tom Kirchner Date: Tue, 15 Mar 2011 00:43:22 +0000 Subject: [PATCH 054/112] Actually show return code on failure --- themes/tjkirch.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme index 1a93502f8..458ee1721 100644 --- a/themes/tjkirch.zsh-theme +++ b/themes/tjkirch.zsh-theme @@ -7,7 +7,7 @@ function prompt_char { if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi } -PROMPT='%(?, ,%{$fg[red]%}FAIL%{$reset_color%} +PROMPT='%(?, ,%{$fg[red]%}FAIL: $?%{$reset_color%} ) %{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) %_ $(prompt_char) ' From 92cacc9552e720b7b29d788fdb24bd46548f5846 Mon Sep 17 00:00:00 2001 From: Tom Kirchner Date: Tue, 15 Mar 2011 00:43:37 +0000 Subject: [PATCH 055/112] No space before prompt char at beginning of line --- themes/tjkirch.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme index 458ee1721..446cde724 100644 --- a/themes/tjkirch.zsh-theme +++ b/themes/tjkirch.zsh-theme @@ -10,6 +10,6 @@ function prompt_char { PROMPT='%(?, ,%{$fg[red]%}FAIL: $?%{$reset_color%} ) %{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) -%_ $(prompt_char) ' +%_$(prompt_char) ' RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' From ce41d0e5bdf7df7e4261ad6e5b3e3c0fa59dd890 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Tue, 15 Mar 2011 20:31:14 -0400 Subject: [PATCH 056/112] Add debian plugins file --- plugins/debian/debian.plugin.zsh | 60 ++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 plugins/debian/debian.plugin.zsh diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh new file mode 100644 index 000000000..f8865a412 --- /dev/null +++ b/plugins/debian/debian.plugin.zsh @@ -0,0 +1,60 @@ +# https://github.com/dbbolton/ +# +# Debian-related zsh aliases and functions for zsh + + +# Aliases ################################################################### + +# Some self-explanatory aliases +alias afs='apt-file search --regexp' +alias aps='aptitude search' +alias apsrc='apt-get source' +alias apv='apt-cache policy' + +alias apdg='su -c "aptitude update && aptitude safe-upgrade"' +alias apud='su -c "aptitude update"' +alias apug='su -c "aptitude safe-upgrade"' + +# print all installed packages +alias allpkgs='aptitude search -F "%p" --disable-columns ~i' + +# Install all .deb files in the current directory. +# Warning: you will need to put the glob in single quotes if you use: +# glob_subst +alias di='su -c "dpkg -i ./*.deb"' + +# Create a basic .deb package +alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' + +# Remove ALL kernel images and headers EXCEPT the one in use +alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' + + + +# Functions ################################################################# + +# create a simple script that can be used to 'duplicate' a system +apt-copy() { + print '#!/bin/sh'"\n" > apt-copy.sh + + list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;') + + print 'aptitude install '"$list\n" >> apt-copy.sh + + chmod +x apt-copy.sh +} + + +# Kernel-package building shortcut +dbb-build () { + MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail ) + 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 +} + + From 52df85440ee8ead8f17d3aa3e1fedf187162313c Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Wed, 16 Mar 2011 12:20:35 -0700 Subject: [PATCH 057/112] Revert "Re-order title/tab setting to make window titles work on OSX terminal which" Was causing iTerm title to disappear entirely.. This reverts commit d4ea399b04ef57dd31097eadc316305d1e42a194. --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 2843eb075..e1e536690 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -6,8 +6,8 @@ function title { if [[ "$TERM" == "screen" ]]; then print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) print -Pn "\e]2;$2\a" #set window name + print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) fi } From 7cc4ab9b3f79ed2e56c8bebeb6fbd4b870b53de2 Mon Sep 17 00:00:00 2001 From: James Frasca Date: Thu, 17 Mar 2011 11:22:51 -0700 Subject: [PATCH 058/112] Added the Frisk theme --- themes/frisk.zsh-theme | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 themes/frisk.zsh-theme diff --git a/themes/frisk.zsh-theme b/themes/frisk.zsh-theme new file mode 100644 index 000000000..f181aec90 --- /dev/null +++ b/themes/frisk.zsh-theme @@ -0,0 +1,10 @@ +PROMPT=$' +%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} +%{$fg_bold[black]%}>%{$reset_color%} ' + +PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From d03a6176aacd583993c02c7e837d10751c431875 Mon Sep 17 00:00:00 2001 From: Sankara Rameswaran Date: Wed, 2 Mar 2011 15:20:43 +0530 Subject: [PATCH 059/112] Lein completion --- plugins/lein/lein.plugin.zsh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugins/lein/lein.plugin.zsh diff --git a/plugins/lein/lein.plugin.zsh b/plugins/lein/lein.plugin.zsh new file mode 100644 index 000000000..19af3556a --- /dev/null +++ b/plugins/lein/lein.plugin.zsh @@ -0,0 +1,27 @@ +function _lein_commands() { + local ret=1 state + _arguments ':subcommand:->subcommand' && ret=0 + + case $state in + subcommand) + subcommands=( + "clean:remove compiled files and dependencies from project" + "compile:ahead-of-time compile the project" + "deps:download and install all dependencies" + "help:display a list of tasks or help for a given task" + "install:install the project and its dependencies in your local repository" + "jar:create a jar file containing the compiled .class files" + "new:create a new project skeleton" + "pom:write a pom.xml file to disk for maven interop" + "test:run the project's tests" + "uberjar:Create a jar including the contents of each of deps" + "upgrade:upgrade leiningen to the latest stable release" + "version:print leiningen's version" + ) + _describe -t subcommands 'leiningen subcommands' subcommands && ret=0 + esac + + return ret +} + +compdef _lein_commands lein From 06063ab695ecfe6fa7737511a070b24412ee1b2a Mon Sep 17 00:00:00 2001 From: Lorrin Nelson Date: Wed, 23 Mar 2011 21:20:08 -0700 Subject: [PATCH 060/112] Introduce DISABLE_AUTO_TITLE option --- lib/termsupport.zsh | 10 +++++++--- templates/zshrc.zsh-template | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e1e536690..b250833ed 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -16,11 +16,15 @@ ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" #Appears when you have the prompt function precmd { - title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE + if [ "$DISABLE_AUTO_TITLE" != "true" ]; then + title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE + fi } #Appears at the beginning of (and during) of command execution function preexec { - local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd - title "$CMD" "%100>...>$2%<<" + if [ "$DISABLE_AUTO_TITLE" != "true" ]; then + local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd + title "$CMD" "%100>...>$2%<<" + fi } diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 8022b3506..506daa9a2 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -14,6 +14,9 @@ export ZSH_THEME="robbyrussell" # Uncomment following line if you want to disable colors in ls # export DISABLE_LS_COLORS="true" +# Uncomment following line if you want to disable autosetting terminal title. +# export DISABLE_AUTO_TITLE="true" + # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Example format: plugins=(rails git textmate ruby lighthouse) plugins=(git) From 2497c57976b1e5002ebecd7ffa5c35bc87ada903 Mon Sep 17 00:00:00 2001 From: Simon Elsbrock Date: Thu, 24 Mar 2011 09:47:48 +0100 Subject: [PATCH 061/112] fixed wget command in readme github uses a wildcard certificate which is not accepted by wget --- README.textile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.textile b/README.textile index 0659aded8..86d2652bb 100644 --- a/README.textile +++ b/README.textile @@ -8,7 +8,7 @@ h2. Setup h3. The automatic installer... (do you trust me?) -@wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@ +@wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@ h3. The manual way @@ -66,4 +66,4 @@ I'm far from being a zsh-expert and suspect there are many ways to improve. If y h3. Send us your theme! -I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. \ No newline at end of file +I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. From 16f9dfb3aa6d301d4345df9af017bd6982273919 Mon Sep 17 00:00:00 2001 From: "Matthew M. Nelson" Date: Thu, 31 Mar 2011 13:51:29 -0500 Subject: [PATCH 062/112] Adding dogenpunk theme --- themes/dogenpunk.zsh-theme | 85 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 themes/dogenpunk.zsh-theme diff --git a/themes/dogenpunk.zsh-theme b/themes/dogenpunk.zsh-theme new file mode 100644 index 000000000..f4d65ab74 --- /dev/null +++ b/themes/dogenpunk.zsh-theme @@ -0,0 +1,85 @@ +# ----------------------------------------------------------------------------- +# FILE: dogenpunk.zsh-theme +# DESCRIPTION: oh-my-zsh theme file. +# AUTHOR: Matthew Nelson (dogenpunk@gmail.com) +# VERSION: 0.1 +# SCREENSHOT: coming soon +# ----------------------------------------------------------------------------- + +MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" +local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" + +PROMPT='%{$fg[blue]%}%m%{$reset_color%}%{$fg_bold[white]%} ओम् %{$reset_color%}%{$fg[cyan]%}%~:%{$reset_color%}$(git_time_since_commit)$(git_prompt_info) +%{$fg[red]%}%!%{$reset_color%} $(prompt_char) ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[green]%}git%{$reset_color%}@%{$bg[white]%}%{$fg[black]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" + +function prompt_char() { + git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return + hg root >/dev/null 2>/dev/null && echo "%{$fg_bold[red]%}☿%{$reset_color%}" && return + echo "%{$fg[cyan]%}◯ %{$reset_color%}" +} + +# Colors vary depending on time lapsed. +ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}" +ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}" + +# Determine the time since last commit. If branch is clean, +# use a neutral color, otherwise colors will vary according to time. +function git_time_since_commit() { + if git rev-parse --git-dir > /dev/null 2>&1; then + # Only proceed if there is actually a commit. + if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then + # Get the last commit. + last_commit=`git log --pretty=format:'%at' -1 2> /dev/null` + now=`date +%s` + seconds_since_last_commit=$((now-last_commit)) + + # Totals + MINUTES=$((seconds_since_last_commit / 60)) + HOURS=$((seconds_since_last_commit/3600)) + + # Sub-hours and sub-minutes + DAYS=$((seconds_since_last_commit / 86400)) + SUB_HOURS=$((HOURS % 24)) + SUB_MINUTES=$((MINUTES % 60)) + + if [[ -n $(git status -s 2> /dev/null) ]]; then + if [ "$MINUTES" -gt 30 ]; then + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" + elif [ "$MINUTES" -gt 10 ]; then + COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM" + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT" + fi + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" + fi + + if [ "$HOURS" -gt 24 ]; then + echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + elif [ "$MINUTES" -gt 60 ]; then + echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + else + echo "($COLOR${MINUTES}m%{$reset_color%}|" + fi + else + COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" + echo "($COLOR~|" + fi + fi +} From 57f55e69ed967e93c0fd44a6a7e470781eb38029 Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 13:50:05 +0200 Subject: [PATCH 063/112] Zsh will now complete git aliases with git stuff --- plugins/git/git.plugin.zsh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 71a62819b..fc4e56fac 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -1,19 +1,34 @@ # Aliases alias g='git' +compdef g=git alias gst='git status' +compdef gst=git alias gl='git pull' +compdef gl=git alias gup='git fetch && git rebase' +compdef gup=git alias gp='git push' +compdef gp=git alias gd='git diff | mate' +compdef gd=git alias gdv='git diff -w "$@" | vim -R -' +compdef gdv=git alias gc='git commit -v' +compdef gc=git alias gca='git commit -v -a' +compdef gca=git alias gco='git checkout' +compdef gco=git alias gb='git branch' +compdef gb=git alias gba='git branch -a' +compdef gba=git alias gcount='git shortlog -sn' +compdef gcount=git alias gcp='git cherry-pick' +compdef gcp=git alias glg='git log --stat --max-count=5' +compdef glg=git # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' @@ -29,5 +44,8 @@ function current_branch() { # these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' +compdef ggpull=git alias ggpush='git push origin $(current_branch)' +compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' +compdef ggpnp=git From 2e9492969b0ea90932ad3f4298330b75ef8cf2ce Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 15:43:39 +0200 Subject: [PATCH 064/112] Completions are git subdommand-aware now --- plugins/git/git.plugin.zsh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index fc4e56fac..8470c28a4 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -2,15 +2,16 @@ alias g='git' compdef g=git alias gst='git status' -compdef gst=git +compdef _git gst=git-status alias gl='git pull' -compdef gl=git +compdef _git gl=git-pull alias gup='git fetch && git rebase' compdef gup=git alias gp='git push' -compdef gp=git +compdef _git gp=git-push alias gd='git diff | mate' -compdef gd=git +# WTF is mate?? +compdef _git gd=git-diff alias gdv='git diff -w "$@" | vim -R -' compdef gdv=git alias gc='git commit -v' @@ -18,20 +19,21 @@ compdef gc=git alias gca='git commit -v -a' compdef gca=git alias gco='git checkout' -compdef gco=git +compdef _git gco=git-checkout alias gb='git branch' -compdef gb=git +compdef _git gb=git-branch alias gba='git branch -a' compdef gba=git alias gcount='git shortlog -sn' compdef gcount=git alias gcp='git cherry-pick' -compdef gcp=git +compdef _git gcp=git-cherry-pick alias glg='git log --stat --max-count=5' -compdef glg=git +compdef _git glg=git-log # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' +compdef git-svn-dcommit-push=git # # Will return the current branch name From 4cd4167c8d988656eed4896d6d1343e311ce078c Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 21:28:19 +0200 Subject: [PATCH 065/112] Further git completion improovements In detail: gup - now completes with remotes like git fetch would gdv - got git diff completions gc/gca - now zsh will suggest files in staging area gba - suggestions as for git branch --- plugins/git/git.plugin.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8470c28a4..9fe7a6467 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -6,24 +6,24 @@ compdef _git gst=git-status alias gl='git pull' compdef _git gl=git-pull alias gup='git fetch && git rebase' -compdef gup=git +compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push alias gd='git diff | mate' # WTF is mate?? compdef _git gd=git-diff alias gdv='git diff -w "$@" | vim -R -' -compdef gdv=git +compdef _git gdv=git-diff alias gc='git commit -v' -compdef gc=git +compdef _git gc=git-commit alias gca='git commit -v -a' -compdef gca=git +compdef _git gca=git-commit alias gco='git checkout' compdef _git gco=git-checkout alias gb='git branch' compdef _git gb=git-branch alias gba='git branch -a' -compdef gba=git +compdef _git gba=git-branch alias gcount='git shortlog -sn' compdef gcount=git alias gcp='git cherry-pick' From d138751cbd721bf7036e88cb1a2bafc9ebb87366 Mon Sep 17 00:00:00 2001 From: "Renaud (Nel) Morvan" Date: Mon, 4 Apr 2011 13:30:39 +0200 Subject: [PATCH 066/112] Escape characters used in escape sequence to avoid triggering bugs in Apple Terminal Closes #45 #57 #58 #86. --- lib/termsupport.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index b250833ed..494ef8923 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -4,10 +4,10 @@ #Limited support for Apple Terminal (Terminal can't set window or tab separately) function title { if [[ "$TERM" == "screen" ]]; then - print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars + print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]2;$2\a" #set window name - print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) + print -Pn "\e]2;$2:q\a" #set window name + print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) fi } From a3e92892bbc95acc270d93b45be05c55348da55c Mon Sep 17 00:00:00 2001 From: "Renaud (Nel) Morvan" Date: Mon, 4 Apr 2011 13:44:48 +0200 Subject: [PATCH 067/112] Command title behavior no longer depend on local zsh configuration Fix by derekjw. closes #52. --- lib/termsupport.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 494ef8923..42bbb9ef2 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -3,7 +3,7 @@ #Fully support screen, iterm, and probably most modern xterm and rxvt #Limited support for Apple Terminal (Terminal can't set window or tab separately) function title { - if [[ "$TERM" == "screen" ]]; then + if [[ $TERM =~ "^screen" ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name @@ -24,6 +24,8 @@ function precmd { #Appears at the beginning of (and during) of command execution function preexec { if [ "$DISABLE_AUTO_TITLE" != "true" ]; then + emulate -L zsh + setopt extended_glob local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd title "$CMD" "%100>...>$2%<<" fi From 0cc0915bf83c1915575182d1287abfc6dd3e6f3c Mon Sep 17 00:00:00 2001 From: "Renaud (Nel) Morvan" Date: Mon, 4 Apr 2011 14:02:50 +0200 Subject: [PATCH 068/112] Refactor DISABLE_AUTO_TITLE to be more DRY --- lib/termsupport.zsh | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 42bbb9ef2..3152751e4 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -3,6 +3,7 @@ #Fully support screen, iterm, and probably most modern xterm and rxvt #Limited support for Apple Terminal (Terminal can't set window or tab separately) function title { + [ "$DISABLE_AUTO_TITLE" != "true" ] || return if [[ $TERM =~ "^screen" ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then @@ -16,17 +17,13 @@ ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" #Appears when you have the prompt function precmd { - if [ "$DISABLE_AUTO_TITLE" != "true" ]; then - title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE - fi + title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE } #Appears at the beginning of (and during) of command execution function preexec { - if [ "$DISABLE_AUTO_TITLE" != "true" ]; then - emulate -L zsh - setopt extended_glob - local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd - title "$CMD" "%100>...>$2%<<" - fi + emulate -L zsh + setopt extended_glob + local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd + title "$CMD" "%100>...>$2%<<" } From 993e05da50543b9c2dcc5e4fedb93afd1c8b020c Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Fri, 8 Apr 2011 10:12:22 -0400 Subject: [PATCH 069/112] Replace redundant calls to compinit with a single call. --- lib/completion.zsh | 3 --- lib/key-bindings.zsh | 2 -- oh-my-zsh.sh | 4 ++++ plugins/brew/brew.plugin.zsh | 2 -- plugins/cpanm/cpanm.plugin.zsh | 2 -- plugins/gem/gem.plugin.zsh | 2 -- plugins/github/github.plugin.zsh | 2 -- plugins/macports/macports.plugin.zsh | 2 -- plugins/pip/pip.plugin.zsh | 2 -- plugins/vagrant/vagrant.plugin.zsh | 2 -- 10 files changed, 4 insertions(+), 19 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index e8e9776a5..3c5a41e14 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -9,9 +9,6 @@ setopt always_to_end WORDCHARS='' -autoload -U compinit -compinit -i - zmodload -i zsh/complist ## case-insensitive (all),partial-word and then substring completion diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 7196a88ff..c7ad907d7 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -1,6 +1,4 @@ # TODO: Explain what some of this does.. -autoload -U compinit -compinit -i bindkey -e bindkey '\ew' kill-region diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 291772dfe..805e92428 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -17,6 +17,10 @@ for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" +# Load and run compinit +autoload -U compinit +compinit -i + # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] then diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 353a18942..079c0fba0 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,4 +1,2 @@ # add brew completion function to path fpath=($ZSH/plugins/brew $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/cpanm/cpanm.plugin.zsh b/plugins/cpanm/cpanm.plugin.zsh index af52d3e8b..8425b5ad8 100644 --- a/plugins/cpanm/cpanm.plugin.zsh +++ b/plugins/cpanm/cpanm.plugin.zsh @@ -1,4 +1,2 @@ # add cpanm completion function to path fpath=($ZSH/plugins/cpanm $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh index d4e5c6584..cdfad7ad6 100644 --- a/plugins/gem/gem.plugin.zsh +++ b/plugins/gem/gem.plugin.zsh @@ -1,4 +1,2 @@ # add gem completion function to path fpath=($ZSH/plugins/gem $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index c23504b85..0858783cc 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,4 +1,2 @@ # add github completion function to path fpath=($ZSH/plugins/github $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index cbbc49265..492a665b5 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -8,5 +8,3 @@ alias pup="psu && puo" # add macports completion function to path fpath=($ZSH/plugins/macports $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index bf9f23968..740f96207 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -1,4 +1,2 @@ # add brew completion function to path fpath=($ZSH/plugins/pip $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh index 5e9bcf10a..98d2d705c 100644 --- a/plugins/vagrant/vagrant.plugin.zsh +++ b/plugins/vagrant/vagrant.plugin.zsh @@ -1,3 +1 @@ fpath=($ZSH/plugins/vagrant $fpath) -autoload -U compinit -compinit -i From ef4175981b78ca6ef24f7776ab213f3b71488472 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Fri, 8 Apr 2011 11:10:14 -0400 Subject: [PATCH 070/112] Moved the single compinit call from oh-my-zsh.sh to lib/completion.zsh --- lib/completion.zsh | 4 ++++ oh-my-zsh.sh | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 3c5a41e14..21735e7e9 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -60,3 +60,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ # ... unless we really want to. zstyle '*' single-ignored show +# Load and run compinit +autoload -U compinit +compinit -i + diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 805e92428..3970a497e 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -18,8 +18,8 @@ for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh source "$ZSH/themes/$ZSH_THEME.zsh-theme" # Load and run compinit -autoload -U compinit -compinit -i +#autoload -U compinit +#compinit -i # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] From 235733e5e224539cf5002a02694d021902fd9550 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Fri, 8 Apr 2011 11:12:21 -0400 Subject: [PATCH 071/112] Removed commented out code. --- oh-my-zsh.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 3970a497e..291772dfe 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -17,10 +17,6 @@ for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" -# Load and run compinit -#autoload -U compinit -#compinit -i - # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] then From 91e4f3d667cc04148fafc4675174424daf5f6b5a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 4 Apr 2011 00:54:43 +0200 Subject: [PATCH 072/112] Fix `gdv`: make it a function, and use `view`. I've changed it to use `view` instead of `vim -R` to make it hopefully more editor-agnostic. --- 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 8470c28a4..b21c6a8e0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -12,7 +12,7 @@ compdef _git gp=git-push alias gd='git diff | mate' # WTF is mate?? compdef _git gd=git-diff -alias gdv='git diff -w "$@" | vim -R -' +gdv() { git diff -w "$@" | view - } compdef gdv=git alias gc='git commit -v' compdef gc=git From b3a78d2b287cc9789d1c791a91448c40dcab2e23 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 12 Apr 2011 10:19:15 +0200 Subject: [PATCH 073/112] Using git-diff instead of git diff --- 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 85eabced0..bc340e86b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -9,7 +9,7 @@ alias gup='git fetch && git rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push -gdv() { git diff -w "$@" | view - } +gdv() { git-diff -w "$@" | view - } compdef _git gdv=git-diff alias gc='git commit -v' compdef _git gc=git-commit From f9282283822771a7f471547569de481a66a70b0f Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 20 Mar 2011 16:29:00 -0400 Subject: [PATCH 074/112] Added npm plugin. --- plugins/npm/_npm | 19 +++++++++++++++++++ plugins/npm/npm.plugin.zsh | 4 ++++ 2 files changed, 23 insertions(+) create mode 100644 plugins/npm/_npm create mode 100644 plugins/npm/npm.plugin.zsh diff --git a/plugins/npm/_npm b/plugins/npm/_npm new file mode 100644 index 000000000..24b536188 --- /dev/null +++ b/plugins/npm/_npm @@ -0,0 +1,19 @@ +#compdef npm + +# Node Package Manager 0.3.15 completion, letting npm do all the completion work + +_npm() { + compadd -- $(_npm_complete $words) +} + +# We want to show all errors of any substance, but never the "npm (not )ok" one. +# (Also doesn't consider "ERR! no match found" worth breaking the terminal for.) +_npm_complete() { + local ask_npm + ask_npm=(npm completion --color false --loglevel error -- $@) + { _call_program npm $ask_npm 2>&1 >&3 \ + | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \ + } 3>&1 +} + +_npm "$@" diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh new file mode 100644 index 000000000..826f0f7b0 --- /dev/null +++ b/plugins/npm/npm.plugin.zsh @@ -0,0 +1,4 @@ +# add npm completion function to path +fpath=($ZSH/plugins/npm $fpath) +autoload -U compinit +compinit -i From 8883ace767997d1a629c165780af303f715ee78d Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 12 Apr 2011 10:24:06 +0200 Subject: [PATCH 075/112] Revert "Enable alias completion, do not limit completion to just files" This reverts commit c3a58b00040018743ead1e6672910433fc1ca7c2. --- lib/completion.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index e8e9776a5..9c2dfecca 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -4,7 +4,6 @@ unsetopt menu_complete # do not autoselect the first completion entry unsetopt flowcontrol setopt auto_menu # show completion menu on succesive tab press setopt complete_in_word -setopt complete_aliases setopt always_to_end WORDCHARS='' From 0447a0ec11ad56d24ad391e9149c8d7e0429b205 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Tue, 1 Mar 2011 01:04:10 -0500 Subject: [PATCH 076/112] added hub plugin from defunkt --- plugins/hub/hub.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/hub/hub.plugin.zsh diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh new file mode 100644 index 000000000..e82a0ec25 --- /dev/null +++ b/plugins/hub/hub.plugin.zsh @@ -0,0 +1,5 @@ +# hub alias from defunkt +# https://github.com/defunkt/hub +if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then + eval $( hub alias -s $( ps -o comm= -p $$ ) ) +fi From 8ed33a8ccc5e926e84bf522951ecf80e97e2a8e6 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Tue, 1 Mar 2011 21:34:25 -0500 Subject: [PATCH 077/112] no need for an extra fork --- plugins/hub/hub.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh index e82a0ec25..9f95c6361 100644 --- a/plugins/hub/hub.plugin.zsh +++ b/plugins/hub/hub.plugin.zsh @@ -1,5 +1,5 @@ # hub alias from defunkt # https://github.com/defunkt/hub if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then - eval $( hub alias -s $( ps -o comm= -p $$ ) ) + eval $( hub alias -s zsh ) fi From 2717e147b303beef0f84e6dfbb2db562c8fc6740 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Wed, 2 Mar 2011 20:00:40 -0500 Subject: [PATCH 078/112] blueyed's ZSH-fu is much stronger than mine. --- plugins/hub/hub.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh index 9f95c6361..48e1fa4ad 100644 --- a/plugins/hub/hub.plugin.zsh +++ b/plugins/hub/hub.plugin.zsh @@ -1,5 +1,5 @@ # hub alias from defunkt # https://github.com/defunkt/hub -if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then - eval $( hub alias -s zsh ) +if which hub > /dev/null; then + eval $(hub alias -s zsh) fi From 277057cb6399769340d41bba9421464c58742026 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Thu, 3 Mar 2011 21:36:35 -0500 Subject: [PATCH 079/112] Moved this to the existing github plugin --- plugins/hub/hub.plugin.zsh | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 plugins/hub/hub.plugin.zsh diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh deleted file mode 100644 index 48e1fa4ad..000000000 --- a/plugins/hub/hub.plugin.zsh +++ /dev/null @@ -1,5 +0,0 @@ -# hub alias from defunkt -# https://github.com/defunkt/hub -if which hub > /dev/null; then - eval $(hub alias -s zsh) -fi From 9406ae7929bc1d3a063b65e7559a28268aaf0a7a Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Thu, 3 Mar 2011 21:38:56 -0500 Subject: [PATCH 080/112] Whoops, this was supposed to be in the last commit! --- plugins/github/github.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index c23504b85..72e9b07b9 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,3 +1,9 @@ +# hub alias from defunkt +# https://github.com/defunkt/hub +if which hub > /dev/null; then + eval $(hub alias -s zsh) +fi + # add github completion function to path fpath=($ZSH/plugins/github $fpath) autoload -U compinit From f0922006aba68e485480a81d83ba53b201270a69 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Sat, 19 Mar 2011 10:29:22 -0400 Subject: [PATCH 081/112] changes recommended by blueyed --- plugins/github/github.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 72e9b07b9..8d4580654 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,7 +1,8 @@ # hub alias from defunkt # https://github.com/defunkt/hub -if which hub > /dev/null; then - eval $(hub alias -s zsh) +if [ "$commands[(I)hub]" ]; then + # eval `hub alias -s zsh` + function git(){hub "$@"} fi # add github completion function to path From 7d71148490511ae2ef849a9d95de07ec4a751121 Mon Sep 17 00:00:00 2001 From: Dmitry Maksimov Date: Sat, 26 Feb 2011 10:04:45 +0300 Subject: [PATCH 082/112] kolo.zsh-theme --- themes/kolo.zsh-theme | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 themes/kolo.zsh-theme diff --git a/themes/kolo.zsh-theme b/themes/kolo.zsh-theme new file mode 100644 index 000000000..6e04e1595 --- /dev/null +++ b/themes/kolo.zsh-theme @@ -0,0 +1,21 @@ +autoload -U colors && colors + +autoload -Uz vcs_info + +zstyle ':vcs_info:*' stagedstr '%F{green}●' +zstyle ':vcs_info:*' unstagedstr '%F{yellow}●' +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r' +zstyle ':vcs_info:*' enable git svn +precmd () { + if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] { + zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]' + } else { + zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{red}●%F{green}]' + } + + vcs_info +} + +setopt prompt_subst +PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% ' From 849e2834fb1e4fe27a0b5f997733fd2ae4d8f9b7 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 12 Apr 2011 10:36:45 +0200 Subject: [PATCH 083/112] Updating the README... now links to contributors page --- README.textile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.textile b/README.textile index 86d2652bb..d01c3310a 100644 --- a/README.textile +++ b/README.textile @@ -54,12 +54,6 @@ h3. Uninstalling If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config). -h2. Thanks - -* Rick Olson (technoweenie) might remember some of the configuration, which I took from a pastie a few years ago. -* Marcel (noradio) provided Rick the original zsh configuration. -* Nicholas (ulysses) for the "rake autocompletion code":http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh. - h2. Help out! I'm far from being a zsh-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! @@ -67,3 +61,11 @@ I'm far from being a zsh-expert and suspect there are many ways to improve. If y h3. Send us your theme! I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. + +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! \ No newline at end of file From 6cbd15f4035ffd79e6e325a256f87443c106c2c6 Mon Sep 17 00:00:00 2001 From: James Frasca Date: Thu, 17 Mar 2011 11:22:51 -0700 Subject: [PATCH 084/112] Added the Frisk theme --- themes/frisk.zsh-theme | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 themes/frisk.zsh-theme diff --git a/themes/frisk.zsh-theme b/themes/frisk.zsh-theme new file mode 100644 index 000000000..f181aec90 --- /dev/null +++ b/themes/frisk.zsh-theme @@ -0,0 +1,10 @@ +PROMPT=$' +%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} +%{$fg_bold[black]%}>%{$reset_color%} ' + +PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 971b071dc67f423d8b2a6f476e1dd58819049f41 Mon Sep 17 00:00:00 2001 From: kphoen Date: Mon, 7 Mar 2011 15:15:46 +0100 Subject: [PATCH 085/112] Add: new theme --- themes/kphoen.zsh-theme | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 themes/kphoen.zsh-theme diff --git a/themes/kphoen.zsh-theme b/themes/kphoen.zsh-theme new file mode 100644 index 000000000..0e9b5e73c --- /dev/null +++ b/themes/kphoen.zsh-theme @@ -0,0 +1,50 @@ +# ------------------------------------------------------------------------------ +# FILE: kphoen.zsh-theme +# DESCRIPTION: oh-my-zsh theme file. +# AUTHOR: Kévin Gomez (geek63@gmail.com) +# VERSION: 1.0.0 +# SCREENSHOT: +# ------------------------------------------------------------------------------ + + +if [[ "$TERM" != "dumb" ]] && [[ "$DISABLE_LS_COLORS" != "true" ]]; then + PROMPT='[%{$fg[red]%}%n%{$reset_color%}@%{$fg[magenta]%}%m%{$reset_color%}:%{$fg[blue]%}%~%{$reset_color%}$(git_prompt_info)] +%# ' + + ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[green]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + ZSH_THEME_GIT_PROMPT_DIRTY="" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + # display exitcode on the right when >0 + return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + + RPROMPT='${return_code}$(git_prompt_status)%{$reset_color%}' + + ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚" + ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹" + ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖" + ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜" + ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═" + ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" +else + PROMPT='[%n@%m:%~$(git_prompt_info)] +%# ' + + ZSH_THEME_GIT_PROMPT_PREFIX=" on" + ZSH_THEME_GIT_PROMPT_SUFFIX="" + ZSH_THEME_GIT_PROMPT_DIRTY="" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + # display exitcode on the right when >0 + return_code="%(?..%? ↵)" + + RPROMPT='${return_code}$(git_prompt_status)' + + ZSH_THEME_GIT_PROMPT_ADDED=" ✚" + ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹" + ZSH_THEME_GIT_PROMPT_DELETED=" ✖" + ZSH_THEME_GIT_PROMPT_RENAMED=" ➜" + ZSH_THEME_GIT_PROMPT_UNMERGED=" ═" + ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭" +fi From 16ac094a43052fb57eda9503174006a84a61a414 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Tue, 12 Apr 2011 09:28:15 -0400 Subject: [PATCH 086/112] Moved compinit call back to oh-my-zsh.sh, after plugins are loaded --- lib/completion.zsh | 4 ---- oh-my-zsh.sh | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 21735e7e9..3c5a41e14 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -60,7 +60,3 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ # ... unless we really want to. zstyle '*' single-ignored show -# Load and run compinit -autoload -U compinit -compinit -i - diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 291772dfe..84a850ca3 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -14,6 +14,10 @@ for config_file ($ZSH/custom/*.zsh) source $config_file plugin=${plugin:=()} for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh +# Load and run compinit +autoload -U compinit +compinit -i + # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" From 6bf906a2622ddea1e9aae5d23c544d37fc4b6a76 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Tue, 12 Apr 2011 17:41:09 -0400 Subject: [PATCH 087/112] Optimize plugin loading so that only one call to compinit is required --- oh-my-zsh.sh | 13 +++++++++++-- plugins/brew/brew.plugin.zsh | 2 -- plugins/cpanm/cpanm.plugin.zsh | 2 -- plugins/gem/gem.plugin.zsh | 2 -- plugins/github/github.plugin.zsh | 2 -- plugins/macports/macports.plugin.zsh | 2 -- plugins/pip/pip.plugin.zsh | 2 -- plugins/vagrant/vagrant.plugin.zsh | 1 - 8 files changed, 11 insertions(+), 15 deletions(-) delete mode 100644 plugins/brew/brew.plugin.zsh delete mode 100644 plugins/cpanm/cpanm.plugin.zsh delete mode 100644 plugins/gem/gem.plugin.zsh delete mode 100644 plugins/github/github.plugin.zsh delete mode 100644 plugins/pip/pip.plugin.zsh delete mode 100644 plugins/vagrant/vagrant.plugin.zsh diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 84a850ca3..0c85de714 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -10,14 +10,23 @@ for config_file ($ZSH/lib/*.zsh) source $config_file # Load all of your custom configurations from custom/ for config_file ($ZSH/custom/*.zsh) source $config_file -# Load all of the plugins that were defined in ~/.zshrc +# Add all defined plugins to fpath plugin=${plugin:=()} -for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh +for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) # Load and run compinit autoload -U compinit compinit -i +# Load all of the plugins that were defined in ~/.zshrc +for plugin ($plugins) +do + if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ] + then + source $ZSH/plugins/$plugin/$plugin.plugin.zsh + fi +done + # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh deleted file mode 100644 index 079c0fba0..000000000 --- a/plugins/brew/brew.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add brew completion function to path -fpath=($ZSH/plugins/brew $fpath) diff --git a/plugins/cpanm/cpanm.plugin.zsh b/plugins/cpanm/cpanm.plugin.zsh deleted file mode 100644 index 8425b5ad8..000000000 --- a/plugins/cpanm/cpanm.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add cpanm completion function to path -fpath=($ZSH/plugins/cpanm $fpath) diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh deleted file mode 100644 index cdfad7ad6..000000000 --- a/plugins/gem/gem.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add gem completion function to path -fpath=($ZSH/plugins/gem $fpath) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh deleted file mode 100644 index 0858783cc..000000000 --- a/plugins/github/github.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add github completion function to path -fpath=($ZSH/plugins/github $fpath) diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index 492a665b5..277352e32 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -6,5 +6,3 @@ alias puni="sudo port uninstall inactive" alias puo="sudo port upgrade outdated" alias pup="psu && puo" -# add macports completion function to path -fpath=($ZSH/plugins/macports $fpath) diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh deleted file mode 100644 index 740f96207..000000000 --- a/plugins/pip/pip.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add brew completion function to path -fpath=($ZSH/plugins/pip $fpath) diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh deleted file mode 100644 index 98d2d705c..000000000 --- a/plugins/vagrant/vagrant.plugin.zsh +++ /dev/null @@ -1 +0,0 @@ -fpath=($ZSH/plugins/vagrant $fpath) From 757ebfcbd20b0893d8c9529eed2dfd428868f431 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Tue, 12 Apr 2011 17:50:15 -0400 Subject: [PATCH 088/112] Moved the plugin fpath loop and compinit so they happen before custom scripts are loaded. --- oh-my-zsh.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 0c85de714..ad4b268ae 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -7,9 +7,6 @@ fpath=($ZSH/functions $fpath) # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh) source $config_file -# Load all of your custom configurations from custom/ -for config_file ($ZSH/custom/*.zsh) source $config_file - # Add all defined plugins to fpath plugin=${plugin:=()} for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) @@ -18,6 +15,9 @@ for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) autoload -U compinit compinit -i +# Load all of your custom configurations from custom/ +for config_file ($ZSH/custom/*.zsh) source $config_file + # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins) do From 796f5164f306da2f4e6ab7cbadc17b78f5f683af Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Tue, 12 Apr 2011 19:53:55 -0400 Subject: [PATCH 089/112] Minor reformatting --- oh-my-zsh.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index ad4b268ae..c7a4c320a 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -19,10 +19,8 @@ compinit -i for config_file ($ZSH/custom/*.zsh) source $config_file # Load all of the plugins that were defined in ~/.zshrc -for plugin ($plugins) -do - if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ] - then +for plugin ($plugins); do + if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH/plugins/$plugin/$plugin.plugin.zsh fi done From 60bae66bbfebe7bf78378564ffe9aed00c3342b4 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 7 Apr 2011 10:23:06 +0200 Subject: [PATCH 090/112] new yum plugin with useful aliases --- plugins/yum/yum.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/yum/yum.plugin.zsh diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh new file mode 100644 index 000000000..d6ba7ed62 --- /dev/null +++ b/plugins/yum/yum.plugin.zsh @@ -0,0 +1,12 @@ +## Aliases + +alias ys="yum search" # search package +alias yp="yum info" # show package info +alias yl="yum list" # list packages +alias yli="yum list installed" # print all installed packages + +alias yu="sudo yum update" # upgrate packages +alias yi="sudo yum install" # install package +alias yr="sudo yum remove" # remove package +alias yrl="sudo yum remove --remove-leaves" # remove package and leaves +alias yc="sudo yum clean all" # clean cache From 14f07ebc68da8b06cdb0a4fdb435ac928ff419f1 Mon Sep 17 00:00:00 2001 From: alexandru Date: Thu, 14 Apr 2011 16:22:18 -0700 Subject: [PATCH 091/112] redis-cli completion plugin --- plugins/redis-cli/_redis-cli | 142 +++++++++++++++++++++++++ plugins/redis-cli/redis-cli.plugin.zsh | 4 + 2 files changed, 146 insertions(+) create mode 100644 plugins/redis-cli/_redis-cli create mode 100644 plugins/redis-cli/redis-cli.plugin.zsh diff --git a/plugins/redis-cli/_redis-cli b/plugins/redis-cli/_redis-cli new file mode 100644 index 000000000..3789add18 --- /dev/null +++ b/plugins/redis-cli/_redis-cli @@ -0,0 +1,142 @@ +#compdef redis-cli rec +#autoload + +#redis cli completion, based off homebrew completion (ref. 2011-04-14) + +local -a _1st_arguments +_1st_arguments=( + 'append:append a value to a key' + 'auth:authenticate to the server' + 'bgrewriteeaof:asynchronously rewrite the append-only file' + 'bgsave:asynchornously save the dataset to disk' + 'blpop:remove and get the first element in a list, or block until one is available' + 'brpop:remove and get the last element in a list, or block until one is available' + 'brpoplpush:pop a value from a list, push it to another list and return it; or block until one is available' + # 'config get:get the value of a configuration parameter' + # 'config set:set a configuration parameter to the given value' + # 'config resetstat: reset the stats returned by INFO' + 'dbsize:return the number of keys in the selected database' + # 'debug object:get debugging information about a key' + # 'debug setgfault:make the server crash' + 'decr:decrement the integer value of a key by one' + 'decrby:decrement the integet value of a key by the given number' + 'del:delete a key' + 'discard:discard all commands issued after MULTI' + 'echo:echo the given string' + 'exec:execute all commands issued after a MULTI' + 'exists:determine if a key exists' + 'expire:set the time to live for a key, in seconds' + 'expireat:set the expiration for a key as a UNIX timestamp' + 'flushall:remove all keys from all databases' + 'flushdb:remove all keys from the current database' + 'get:get the value of a key' + 'getbit:returns the bit value at offset in the string value stored at key' + 'getrange:get a substring of the string stored at a key' + 'getset:set the string value of a key and return its old value' + 'hdel:delete a hash field' + 'hexists:determine if a hash field exists' + 'hget:get the value of a hash field' + 'hgetall:get all the fields and values in a hash' + 'hincrby:increment the integer value of a hash field by the given number' + 'hkeys:get all the fields in a hash' + 'hlen:get the number of fields in a hash' + 'hmget:get the values of all the given hash fields' + 'hmset:set multiple hash fields to multiple values' + 'hset:set the string value of a hash field' + 'hsetnx:set the value of a hash field, only if the field does not exist' + 'hvals:get all the values in a hash' + 'incr:increment the integer value of a key by one' + 'incrby:increment the integer value of a key by the given number' + 'info:get information and statistics about the server' + 'keys:find all keys matching the given pattern' + 'lastsave:get the UNIX timestamp of the last successful save to disk' + 'lindex:get an element from a list by its index' + 'linset:insert an element before or after another element in a list' + 'llen:get the length of a list' + 'lpop:remove and get the first element in a list' + 'lpush:prepend a value to a list' + 'lpushx:prepend a value to a list, only if the list exists' + 'lrange:get a range of elements from a list' + 'lrem:remove elements from a list' + 'lset:set the value of an element in a list by its index' + 'ltrim:trim a list to the specified range' + 'mget:get the values of all the given keys' + 'monitor:listen for all requests received by the server in real time' + 'move:move a key to another database' + 'mset:set multiple keys to muliple values' + 'msetnx:set multiple keys tom ultiple values, only if none of the keys exist' + 'multi:mark the start of a transaction block' + 'object:inspect the internals of Redis objects' + 'persist:remove the expiration from a key' + 'ping:ping the server' + 'psubscribe:listen for messages published to channels matching the given patterns' + 'publish:post a message to a channel' + 'punsubscribe:stop listening for messages posted to channels matching the given patterns' + 'quit:close the connection' + 'randomkey:return a random key from the keyspace' + 'rename:rename a key' + 'renamenx:rename a key, only if the new key does not exist' + 'rpop:remove and get the last element in a list' + 'rpoplpush:remove the last element in a list, append it to another list and return it' + 'rpush:append a value to a list' + 'rpushx:append a value to a list, only if the list exists' + 'sadd:add a member to a set' + 'save:synchronously save the dataset to disk' + 'scard:get the number of members in a set' + 'sdiff:subtract multiple sets' + 'sdiffstore:subtract multiple sets and store the resulting set in a key' + 'select:change the selected database for the current connection' + 'set:set the string value of a key' + 'setbit:sets or clears the bit at offset in the string value stored at key' + 'setex:set the value and expiration of a key' + 'setnx:set the value of a key, only if the key does not exist' + 'setrange:overwrite part of a string at key starting at the specified offset' + 'shutdown:synchronously save the dataset to disk and then shut down the server' + 'sinter:intersect multiple sets' + 'sinterstore:intersect multiple sets and store the resulting set in a key' + 'sismember:determine if a given value is a member of a set' + 'slaveof:make the server a slave of another instance, or promote it as master' + 'smembers:get all the members in a set' + 'smove:move a member from one set to another' + 'sort:sort the elements in a list, set or sorted set' + 'spop:remove and return a random member from a set' + 'srandmember:get a random member from a set' + 'srem:remove a member from a set' + 'strlen:get the length of the value stored in a key' + 'subscribe:listen for messages published to the given channels' + 'sunion:add multiple sets' + 'sunionstore:add multiple sets and store the resulting set in a key' + 'ttl:get the time to live for a key' + 'type:determine the type stored at key' + 'unsubscribe:stop listening for messages posted to the given channels' + 'unwatch:forget about all watched keys' + 'watch:watch the given keys to determine execution of the MULTI/EXEC block' + 'zadd:add a member to a sorted set, or update its score if it already exists' + 'zcard:get the number of members in a sorted set' + 'zcount:count the members in a sorted set with scores within the given values' + 'zincrby:increment the score of a member in a sorted set' + 'zinterstore:intersect multiple sorted sets and store the resulting sorted set in a new key' + 'zrange:return a range of members in a sorted set, by index' + 'zrangebyscore:return a range of members in a sorted set, by score' + 'zrank:determine the index of a member in a sorted set' + 'zrem:remove a member from a sorted set' + 'zremrangebyrank:remove all members in a sorted set within the given indexes' + 'zremrangebyscore:remove all members in a sorted set within the given scores' + 'zrevrange:return a range of membrs in a sorted set, by index, with scores ordered from high to low' + 'zrevrangebyscore:return a range of members in a sorted set, by score, with scores ordered from high to low' + 'zrevrank:determine the index of a member in a sorted set, with scores ordered from high to low' + 'zscore:get the score associated with the given member in a sorted set' + 'zunionstore:add multiple sorted sets and store te resulting sorted set in a new key' +) + +local expl + +_arguments \ + '(-v --version)'{-v,--version}'[show version]' \ + '(-h --help)'{-h,--help}'[show help]' \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "redis-cli subcommand" _1st_arguments + return +fi \ No newline at end of file diff --git a/plugins/redis-cli/redis-cli.plugin.zsh b/plugins/redis-cli/redis-cli.plugin.zsh new file mode 100644 index 000000000..af5a843c9 --- /dev/null +++ b/plugins/redis-cli/redis-cli.plugin.zsh @@ -0,0 +1,4 @@ +# add redis completion function to path +fpath=($ZSH/plugins/redis-cli $fpath) +autoload -U compinit +compinit -i From 5bcfab37312511a7ffc3e8242ba8b8a622ecf061 Mon Sep 17 00:00:00 2001 From: Jonathan Tron Date: Sat, 16 Apr 2011 14:44:38 +0200 Subject: [PATCH 092/112] Add new jonathan theme --- themes/jonathan.zsh-theme | 137 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 themes/jonathan.zsh-theme diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme new file mode 100644 index 000000000..add485279 --- /dev/null +++ b/themes/jonathan.zsh-theme @@ -0,0 +1,137 @@ +function precmd { + local TERMWIDTH + (( TERMWIDTH = ${COLUMNS} - 1 )) + + + ### + # Truncate the path if it's too long. + + PR_FILLBAR="" + PR_PWDLEN="" + + local promptsize=${#${(%):---(%n@%m:%l)---()--}} + local rubyprompt=`rvm_prompt_info` + local rubypromptsize=${#${rubyprompt}} + local pwdsize=${#${(%):-%~}} + + if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then + ((PR_PWDLEN=$TERMWIDTH - $promptsize)) + else + PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $rubypromptsize + $pwdsize)))..${PR_HBAR}.)}" + fi + +} + + +setopt extended_glob +preexec () { + if [[ "$TERM" == "screen" ]]; then + local CMD=${1[(wr)^(*=*|sudo|-*)]} + echo -n "\ek$CMD\e\\" + fi +} + + +setprompt () { + ### + # Need this so the prompt will work. + + setopt prompt_subst + + + ### + # See if we can use colors. + + autoload colors zsh/terminfo + if [[ "$terminfo[colors]" -ge 8 ]]; then + colors + fi + 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}]%}' + (( count = $count + 1 )) + done + PR_NO_COLOUR="%{$terminfo[sgr0]%}" + + ### + # Modify Git prompt + ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[green]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + ZSH_THEME_GIT_PROMPT_DIRTY="" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚" + ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹" + ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖" + ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜" + ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═" + ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" + + ### + # See if we can use extended characters to look nicer. + + typeset -A altchar + set -A altchar ${(s..)terminfo[acsc]} + PR_SET_CHARSET="%{$terminfo[enacs]%}" + PR_SHIFT_IN="%{$terminfo[smacs]%}" + PR_SHIFT_OUT="%{$terminfo[rmacs]%}" + PR_HBAR=${altchar[q]:--} + PR_ULCORNER=${altchar[l]:--} + PR_LLCORNER=${altchar[m]:--} + PR_LRCORNER=${altchar[j]:--} + PR_URCORNER=${altchar[k]:--} + + + ### + # Decide if we need to set titlebar text. + + case $TERM in + xterm*) + PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}' + ;; + screen) + PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}' + ;; + *) + PR_TITLEBAR='' + ;; + esac + + + ### + # Decide whether to set a screen title + if [[ "$TERM" == "screen" ]]; then + PR_STITLE=$'%{\ekzsh\e\\%}' + else + PR_STITLE='' + fi + + + ### + # Finally, the prompt. + + PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ +$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ +$PR_GREEN%$PR_PWDLEN<...<%~%<<\ +$PR_GREY)`rvm_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ +$PR_CYAN%(!.%SROOT%s.%n)$PR_GREY@$PR_GREEN%m:%l\ +$PR_GREY)$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_URCORNER$PR_SHIFT_OUT\ + +$PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\ +$PR_YELLOW%D{%H:%M:%S}\ +$PR_LIGHT_BLUE%{$reset_color%}`git_prompt_info``git_prompt_status`$PR_BLUE)$PR_CYAN$PR_SHIFT_IN$PR_HBAR\ +$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ +>$PR_NO_COLOUR ' + + # display exitcode on the right when >0 + return_code="%(?..%{$fg[red]%}%? ↵ %{$reset_color%})" + RPROMPT=' $return_code$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\ +($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR' + + PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ +$PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\ +$PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ +$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR ' +} + +setprompt From 1e2152fcf3103c3acbae49caa0f6184b55c7bb17 Mon Sep 17 00:00:00 2001 From: Arthur Kalmenson Date: Mon, 18 Apr 2011 07:48:35 -0400 Subject: [PATCH 093/112] Make the chsh more reliable. --- tools/install.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index 6e3872bb9..2d5fde4c8 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -22,7 +22,12 @@ echo "Copying your current PATH and adding it to the end of ~/.zshrc for you." echo "export PATH=$PATH" >> ~/.zshrc echo "Time to change your default shell to zsh!" -chsh -s "/usr/bin/env zsh" +if [ -f /bin/zsh ] +then + chsh -s /bin/zsh +else + chsh -s "/usr/bin/env zsh" +fi echo ' __ __ ' echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ ' From 5f415c465a576a78d7e1577e472309fdd4c7621f Mon Sep 17 00:00:00 2001 From: Arthur Kalmenson Date: Mon, 18 Apr 2011 07:50:14 -0400 Subject: [PATCH 094/112] Change URL to https since most corporate environments block git port. --- tools/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index 2d5fde4c8..1b8c80f21 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -5,7 +5,7 @@ then fi echo "Cloning Oh My Zsh..." -/usr/bin/env git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh +/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh echo "Looking for an existing zsh config..." if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] From 1354eb124893df9c8f60f668550efcafb94eb05f Mon Sep 17 00:00:00 2001 From: Arthur Kalmenson Date: Mon, 18 Apr 2011 22:51:28 -0400 Subject: [PATCH 095/112] Changed to use which. --- tools/install.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 1b8c80f21..8ed1403af 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -22,12 +22,7 @@ echo "Copying your current PATH and adding it to the end of ~/.zshrc for you." echo "export PATH=$PATH" >> ~/.zshrc echo "Time to change your default shell to zsh!" -if [ -f /bin/zsh ] -then - chsh -s /bin/zsh -else - chsh -s "/usr/bin/env zsh" -fi +chsh -s `which zsh` echo ' __ __ ' echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ ' From 886af72125a108c2f928474c7f817dd2c164795e Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Wed, 20 Apr 2011 01:30:52 -0400 Subject: [PATCH 096/112] Remove fpath/compinit code from github and npm plugins --- plugins/github/github.plugin.zsh | 4 ---- plugins/npm/npm.plugin.zsh | 4 ---- 2 files changed, 8 deletions(-) delete mode 100644 plugins/npm/npm.plugin.zsh diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 8d4580654..df7053ba7 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -5,7 +5,3 @@ if [ "$commands[(I)hub]" ]; then function git(){hub "$@"} fi -# add github completion function to path -fpath=($ZSH/plugins/github $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh deleted file mode 100644 index 826f0f7b0..000000000 --- a/plugins/npm/npm.plugin.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# add npm completion function to path -fpath=($ZSH/plugins/npm $fpath) -autoload -U compinit -compinit -i From 96ec1e12498fb2c3200fef941ad6eadece723a0d Mon Sep 17 00:00:00 2001 From: Alexander Rinass Date: Wed, 20 Apr 2011 15:50:55 +0200 Subject: [PATCH 097/112] Fixed folder naming for mysql-macports plugin and improved start/stop scripts. --- plugins/mysql-macports/mysql-macports.plugin.zsh | 8 ++++++++ plugins/mysql/mysql-macports.plugin.zsh | 6 ------ 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 plugins/mysql-macports/mysql-macports.plugin.zsh delete mode 100644 plugins/mysql/mysql-macports.plugin.zsh diff --git a/plugins/mysql-macports/mysql-macports.plugin.zsh b/plugins/mysql-macports/mysql-macports.plugin.zsh new file mode 100644 index 000000000..c39563fe4 --- /dev/null +++ b/plugins/mysql-macports/mysql-macports.plugin.zsh @@ -0,0 +1,8 @@ +# commands to control local mysql-server installation +# paths are for osx installation via macports + +alias mysqlstart='sudo /opt/local/share/mysql5/mysql/mysql.server start' +alias mysqlstop='sudo /opt/local/share/mysql5/mysql/mysql.server stop' +alias mysqlrestart='sudo /opt/local/share/mysql5/mysql/mysql.server restart' + +alias mysqlstatus='mysqladmin5 -u root -p ping' diff --git a/plugins/mysql/mysql-macports.plugin.zsh b/plugins/mysql/mysql-macports.plugin.zsh deleted file mode 100644 index 63b881c9f..000000000 --- a/plugins/mysql/mysql-macports.plugin.zsh +++ /dev/null @@ -1,6 +0,0 @@ -# commands to control local mysql-server installation -# paths are for osx installtion via macports - -alias mysqlstart='sudo /opt/local/bin/mysqld_safe5' -alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown' -alias mysqlstatus='mysqladmin5 -u root -p ping' \ No newline at end of file From eb3d1576bf593c900d0e0fd9465ca3a076779fe0 Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Thu, 21 Apr 2011 21:40:34 +1000 Subject: [PATCH 098/112] Made my them display the current rvm gemset and check for detached head state in git. --- themes/Soliah.zsh-theme | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/themes/Soliah.zsh-theme b/themes/Soliah.zsh-theme index 1c0ab3cc9..237e70fda 100644 --- a/themes/Soliah.zsh-theme +++ b/themes/Soliah.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(git_prompt_info) +PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(check_git_prompt_info) $ ' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}" @@ -16,6 +16,29 @@ ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}" + +# Git sometimes goes into a detached head state. git_prompt_info doesn't +# return anything in this case. So wrap it in another function and check +# for an empty string. +function check_git_prompt_info() { + if git rev-parse --git-dir > /dev/null 2>&1; then + if [[ -z $(git_prompt_info) ]]; then + echo "%{$fg[magenta]%}detached-head%{$reset_color%})" + else + echo "$(git_prompt_info)" + fi + fi +} + +# Determine if we are using a gemset. +function rvm_gemset() { + GEMSET=`rvm gemset list | grep '=>' | cut -b4-` + if [[ -n $GEMSET ]]; then + echo "%{$fg[yellow]%}$GEMSET%{$reset_color%}|" + fi + +} + # Determine the time since last commit. If branch is clean, # use a neutral color, otherwise colors will vary according to time. function git_time_since_commit() { @@ -49,15 +72,15 @@ function git_time_since_commit() { fi if [ "$HOURS" -gt 24 ]; then - echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + echo "($(rvm_gemset)$COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|" elif [ "$MINUTES" -gt 60 ]; then - echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|" + echo "($(rvm_gemset)$COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|" else - echo "($COLOR${MINUTES}m%{$reset_color%}|" + echo "($(rvm_gemset)$COLOR${MINUTES}m%{$reset_color%}|" fi else COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" - echo "($COLOR~|" + echo "($(rvm_gemset)$COLOR~|" fi fi } From 6f53b3130d5aee8461b0be30e5589e5673929318 Mon Sep 17 00:00:00 2001 From: Ilmari Vacklin Date: Fri, 22 Apr 2011 00:16:29 +0300 Subject: [PATCH 099/112] Add 'upgrade' to brew completions. --- plugins/brew/_brew | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/brew/_brew b/plugins/brew/_brew index 4e590ac63..cee1e25f0 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -31,6 +31,7 @@ _1st_arguments=( 'search:search for a formula (/regex/ or string)' 'unlink:unlink a formula' 'update:freshen up links' + 'upgrade:upgrade outdated formulae' 'uses:show formulas which depend on a formula' ) From 5a957c4d2ecc12e90304d13b3ae724843f0fcb7b Mon Sep 17 00:00:00 2001 From: Corey Donohoe Date: Thu, 21 Apr 2011 15:53:44 -0700 Subject: [PATCH 100/112] support non-standard rvm install prefixes --- themes/bira.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme index f0ee6a5bd..5642eaeb8 100644 --- a/themes/bira.zsh-theme +++ b/themes/bira.zsh-theme @@ -3,7 +3,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}' local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}' -local rvm_ruby='%{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v g)›%{$reset_color%}' +local rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}' local git_branch='$(git_prompt_info)%{$reset_color%}' PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} From 07cee28e31753f8cf424e413aa5f9754720d367b Mon Sep 17 00:00:00 2001 From: Felipe Gallois Date: Sat, 23 Apr 2011 17:31:15 -0300 Subject: [PATCH 101/112] added custom theme, based on eastwood --- themes/gallois.zsh-theme | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 themes/gallois.zsh-theme diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme new file mode 100644 index 000000000..259640ba4 --- /dev/null +++ b/themes/gallois.zsh-theme @@ -0,0 +1,19 @@ +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +#Customized git status, oh-my-zsh currently does not allow render dirty status before branch +git_custom_status() { + local cb=$(current_branch) + if [ -n "$cb" ]; then + echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + fi +} + +#RVM and git settings +if [[ -s ~/.rvm/scripts/rvm ]] ; then + RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1' +fi + +PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' From 1783b16d25029b72bdd1aa164f3e76fd29702e70 Mon Sep 17 00:00:00 2001 From: Florian Adamsky Date: Tue, 26 Apr 2011 23:22:42 +0200 Subject: [PATCH 102/112] added alias for apt-cache search --- plugins/deb/deb.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/deb/deb.plugin.zsh b/plugins/deb/deb.plugin.zsh index 732294a87..1b35a0646 100644 --- a/plugins/deb/deb.plugin.zsh +++ b/plugins/deb/deb.plugin.zsh @@ -9,4 +9,5 @@ alias ar="sudo apt-get remove --purge && \ sudo apt-get autoremove --purge" # remove package alias ap="apt-cache policy" # apt policy alias av="apt-cache show" # show package info +alias acs="apt-cache search" # search package alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache From 57d699ee33e5d4673d8c6a2a9ba42bd25d7b737c Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Wed, 27 Apr 2011 19:46:23 -0400 Subject: [PATCH 103/112] redis-cli.plugin.zsh removed, adding to the fpath isn't needed now --- plugins/redis-cli/redis-cli.plugin.zsh | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 plugins/redis-cli/redis-cli.plugin.zsh diff --git a/plugins/redis-cli/redis-cli.plugin.zsh b/plugins/redis-cli/redis-cli.plugin.zsh deleted file mode 100644 index af5a843c9..000000000 --- a/plugins/redis-cli/redis-cli.plugin.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# add redis completion function to path -fpath=($ZSH/plugins/redis-cli $fpath) -autoload -U compinit -compinit -i From 14404eb7a00dcbafcaf81402844f0eb24243cbbb Mon Sep 17 00:00:00 2001 From: Justin Riley Date: Thu, 28 Apr 2011 15:29:27 -0400 Subject: [PATCH 104/112] add my custom zsh prompt --- themes/jtriley.zsh-theme | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 themes/jtriley.zsh-theme diff --git a/themes/jtriley.zsh-theme b/themes/jtriley.zsh-theme new file mode 100644 index 000000000..ec62a2208 --- /dev/null +++ b/themes/jtriley.zsh-theme @@ -0,0 +1,8 @@ +#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT="%{$fg_bold[cyan]%}%T%{$fg_bold[green]%} %{$fg_bold[white]%}%n%{$fg[magenta]%}@%{$fg_bold[white]%}%m %{$fg_bold[green]%}%d +%{$fg_bold[yellow]%}%% $(git_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]%})" From 58a7cf19b7af136c5f59ee706ffe4772871f00fa Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Thu, 28 Apr 2011 19:12:05 -0400 Subject: [PATCH 105/112] Move sourcing of custom to below plugins --- oh-my-zsh.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c7a4c320a..bf108afce 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -15,9 +15,6 @@ for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) autoload -U compinit compinit -i -# Load all of your custom configurations from custom/ -for config_file ($ZSH/custom/*.zsh) source $config_file - # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then @@ -25,6 +22,9 @@ for plugin ($plugins); do fi done +# Load all of your custom configurations from custom/ +for config_file ($ZSH/custom/*.zsh) source $config_file + # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" From 077baa7bb1aba75d3005b7c6e5df4f53e0ea15d1 Mon Sep 17 00:00:00 2001 From: "Juan G. Hurtado" Date: Fri, 29 Apr 2011 09:22:56 +0200 Subject: [PATCH 106/112] Adds new prompt methods on Git lib Modifies the Git lib file (lib/git.zsh), adding three new prompt methods: - git_prompt_ahead(): Shows the content of the custom var $ZSH_THEME_GIT_PROMPT_AHEAD if the local repository has commits ahead from the remote origin repository - git_prompt_short_sha(): Shows last commit SHA hash in short mode wrapped between the content of the custom vars $ZSH_THEME_GIT_PROMPT_SHA_BEFORE and $ZSH_THEME_GIT_PROMPT_SHA_AFTER - git_prompt_long_sha(): Shows last commit SHA hash in long mode wrapped between the content of the custom vars $ZSH_THEME_GIT_PROMPT_SHA_BEFORE and $ZSH_THEME_GIT_PROMPT_SHA_AFTER --- lib/git.zsh | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index 8512de8a4..e96f075be 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -4,7 +4,8 @@ function git_prompt_info() { echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } -parse_git_dirty () { +# Checks if working tree is dirty +parse_git_dirty() { if [[ -n $(git status -s 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else @@ -12,7 +13,24 @@ parse_git_dirty () { fi } -# get the status of the working tree +# Checks if there are commits ahead from remote +function git_prompt_ahead() { + if $(echo "$(git log origin/master..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then + echo "$ZSH_THEME_GIT_PROMPT_AHEAD" + fi +} + +# Formats prompt string for current git commit short SHA +function git_prompt_short_sha() { + SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" +} + +# Formats prompt string for current git commit long SHA +function git_prompt_long_sha() { + SHA=$(git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" +} + +# Get the status of the working tree git_prompt_status() { INDEX=$(git status --porcelain 2> /dev/null) STATUS="" @@ -41,4 +59,4 @@ git_prompt_status() { STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi echo $STATUS -} +} \ No newline at end of file From 6f7d51c68d4de102f295d3b543ccb5c61dea2c3c Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 29 Apr 2011 11:24:29 +0200 Subject: [PATCH 107/112] Feature: Random themes now supported. Just set your theme to 'random' and it'll load a different theme each time oh-my-zsh is started. Closes #309 --- oh-my-zsh.sh | 14 +++++++++++++- templates/zshrc.zsh-template | 4 +++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 291772dfe..1e735b058 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -15,7 +15,19 @@ plugin=${plugin:=()} for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh # Load the theme -source "$ZSH/themes/$ZSH_THEME.zsh-theme" +# Check for updates on initial load... +if [ "$ZSH_THEME" = "random" ] +then + themes=($ZSH/themes/*zsh-theme) + N=${#themes[@]} + ((N=RANDOM%N)) + RANDOM_THEME=${themes[$N]} + source "$RANDOM_THEME" + echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." +else + source "$ZSH/themes/$ZSH_THEME.zsh-theme" +fi + # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 506daa9a2..576d45eaa 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -1,8 +1,10 @@ # Path to your oh-my-zsh configuration. export ZSH=$HOME/.oh-my-zsh -# Set to the name theme to load. +# Set name of the theme to load. # Look in ~/.oh-my-zsh/themes/ +# Optionally, if you set this to "random", it'll load a random theme each +# time that oh-my-zsh is loaded. export ZSH_THEME="robbyrussell" # Set to this to use case-sensitive completion From 7377ba3f7a08bb11114ddae1b421599e4073da96 Mon Sep 17 00:00:00 2001 From: Kevin Daudt Date: Fri, 29 Apr 2011 11:54:31 +0200 Subject: [PATCH 108/112] Added git-flow plugin --- .gitignore | 3 +- plugins/git-flow/git-flow.plugin.zsh | 332 +++++++++++++++++++++++++++ 2 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 plugins/git-flow/git-flow.plugin.zsh diff --git a/.gitignore b/.gitignore index 8d19d100c..4b555067e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ locals.zsh log/.zsh_history projects.zsh custom/* -!custom/example.zsh \ No newline at end of file +!custom/example.zsh +cache diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh new file mode 100644 index 000000000..270bcbe38 --- /dev/null +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -0,0 +1,332 @@ +#!zsh +# +# Installation +# ------------ +# +# To achieve git-flow completion nirvana: +# +# 0. Update your zsh's git-completion module to the newest verion. +# 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: +# +# a. Place it in your .zshrc: +# +# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in +# your .zshrc: +# +# source ~/.git-flow-completion.zsh +# +# c. Or, use this file as a oh-my-zsh plugin. +# + +_git-flow () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'init:Initialize a new git repo with support for the branching model.' + 'feature:Manage your feature branches.' + 'release:Manage your release branches.' + 'hotfix:Manage your hotfix branches.' + 'support:Manage your support branches.' + 'version:Shows version information.' + ) + _describe -t commands 'git flow' subcommands + ;; + + (options) + case $line[1] in + + (init) + _arguments \ + -f'[Force setting of gitflow branches, even if already configured]' + ;; + + (version) + ;; + + (hotfix) + __git-flow-hotfix + ;; + + (release) + __git-flow-release + ;; + + (feature) + __git-flow-feature + ;; + esac + ;; + esac +} + +__git-flow-release () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new release branch.' + 'finish:Finish a release branch.' + 'list:List all your release branches. (Alias to `git flow release`)' + ) + _describe -t commands 'git flow release' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':version:__git_flow_version_list' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + ':version:__git_flow_version_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-hotfix () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new hotfix branch.' + 'finish:Finish a hotfix branch.' + 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' + ) + _describe -t commands 'git flow hotfix' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':hotfix:__git_flow_version_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + ':hotfix:__git_flow_hotfix_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-feature () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new feature branch.' + 'finish:Finish a feature branch.' + 'list:List all your feature branches. (Alias to `git flow feature`)' + 'publish: public' + 'track: track' + 'diff: diff' + 'rebase: rebase' + 'checkout: checkout' + 'pull: pull' + ) + _describe -t commands 'git flow feature' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':feature:__git_flow_feature_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -r'[Rebase instead of merge]'\ + ':feature:__git_flow_feature_list' + ;; + + (publish) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (track) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (diff) + _arguments \ + ':branch:__git_branch_names'\ + ;; + + (rebase) + _arguments \ + -i'[Do an interactive rebase]' \ + ':branch:__git_branch_names' + ;; + + (checkout) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (pull) + _arguments \ + ':remote:__git_remotes'\ + ':branch:__git_branch_names' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git_flow_version_list () +{ + local expl + declare -a versions + + versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted versions expl 'version' compadd $versions +} + +__git_flow_feature_list () +{ + local expl + declare -a features + + features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted features expl 'feature' compadd $features +} + +__git_remotes () { + local expl gitdir remotes + + gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) + __git_command_successful || return + + remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) + __git_command_successful || return + + # TODO: Should combine the two instead of either or. + if (( $#remotes > 0 )); then + _wanted remotes expl remote compadd $* - $remotes + else + _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" + fi +} + +__git_flow_hotfix_list () +{ + local expl + declare -a hotfixes + + hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted hotfixes expl 'hotfix' compadd $hotfixes +} + +__git_branch_names () { + local expl + declare -a branch_names + + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + + _wanted branch-names expl branch-name compadd $* - $branch_names +} + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' \ No newline at end of file From 86fa4385c51d6778b1358d6f7134c1243feace87 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Fri, 29 Apr 2011 10:59:59 +0100 Subject: [PATCH 109/112] Rails 3 aliases now work with Rails 2 as well. --- plugins/rails3/rails3.plugin.zsh | 34 +++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index 6bf2ba088..f669ef047 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -1,10 +1,30 @@ -alias rs='ruby script/rails server' -alias rg='ruby script/rails generate' -alias rd='ruby script/rails destroy' -alias rp='ruby script/rails plugin' +# Rails 3 aliases, backwards-compatible with Rails 2. + +function _bundle_command { + if command -v bundle && [ -e "Gemfile" ]; then + bundle exec $@ + else + $@ + fi +} + +function _rails_command () { + if [ -e "script/server" ]; then + ruby script/$@ + else + ruby script/rails $@ + fi +} + +alias rc='_rails_command console' +alias rd='_rails_command destroy' +alias rdb='_rails_command dbconsole' alias rdbm='rake db:migrate db:test:clone' -alias rdbmr='rake db:migrate && rake db:migrate:redo' -alias rc='ruby script/rails console' -alias rd='ruby script/rails server --debugger' +alias rg='_rails_command generate' +alias rp='_rails_command plugin' +alias rs='_rails_command server' +alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' +alias rspec='_bundle_command rspec' +alias cuke='_bundle_command cucumber' From 208b225a2f12076099255c329abbb3569723b39b Mon Sep 17 00:00:00 2001 From: "Juan G. Hurtado" Date: Fri, 29 Apr 2011 13:11:38 +0200 Subject: [PATCH 110/112] Custom theme with Git support This is my personal oh-my-zsh theme. It has Git support through methods found in Git lib file of oh-my-zsh. It uses: - parse_git_dirty() - git_prompt_ahead() - current_branch() - git_prompt_short_sha() - git_prompt_status() It also shows user name, machine name and current path. You can take a look at a screenshot at http://goo.gl/ZVoyk --- themes/juanghurtado.zsh-theme | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 themes/juanghurtado.zsh-theme diff --git a/themes/juanghurtado.zsh-theme b/themes/juanghurtado.zsh-theme new file mode 100644 index 000000000..2f715cc9e --- /dev/null +++ b/themes/juanghurtado.zsh-theme @@ -0,0 +1,46 @@ +# ------------------------------------------------------------------------ +# Juan G. Hurtado oh-my-zsh theme +# (Needs Git plugin for current_branch method) +# ------------------------------------------------------------------------ + +# Color shortcuts +RED=$fg[red] +YELLOW=$fg[yellow] +GREEN=$fg[green] +WHITE=$fg[white] +BLUE=$fg[blue] +RED_BOLD=$fg_bold[red] +YELLOW_BOLD=$fg_bold[yellow] +GREEN_BOLD=$fg_bold[green] +WHITE_BOLD=$fg_bold[white] +BLUE_BOLD=$fg_bold[blue] +RESET_COLOR=$reset_color + +# Format for git_prompt_info() +ZSH_THEME_GIT_PROMPT_PREFIX="" +ZSH_THEME_GIT_PROMPT_SUFFIX="" + +# Format for parse_git_dirty() +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$RED%}(*)" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Format for git_prompt_status() +ZSH_THEME_GIT_PROMPT_UNMERGED=" %{$RED%}unmerged" +ZSH_THEME_GIT_PROMPT_DELETED=" %{$RED%}deleted" +ZSH_THEME_GIT_PROMPT_RENAMED=" %{$YELLOW%}renamed" +ZSH_THEME_GIT_PROMPT_MODIFIED=" %{$YELLOW%}modified" +ZSH_THEME_GIT_PROMPT_ADDED=" %{$GREEN%}added" +ZSH_THEME_GIT_PROMPT_UNTRACKED=" %{$WHITE%}untracked" + +# Format for git_prompt_ahead() +ZSH_THEME_GIT_PROMPT_AHEAD=" %{$RED%}(!)" + +# Format for git_prompt_long_sha() and git_prompt_short_sha() +ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$WHITE%}[%{$YELLOW%}" +ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$WHITE%}]" + +# Prompt format +PROMPT=' +%{$GREEN_BOLD%}%n@%m%{$WHITE%}:%{$YELLOW%}%~%u$(parse_git_dirty)$(git_prompt_ahead)%{$RESET_COLOR%} +%{$BLUE%}>%{$RESET_COLOR%} ' +RPROMPT='%{$GREEN_BOLD%}$(current_branch)$(git_prompt_short_sha)$(git_prompt_status)%{$RESET_COLOR%}' \ No newline at end of file From 6d899e23917ea9278b06f60df6b5cc4fcd5b60c3 Mon Sep 17 00:00:00 2001 From: Matt Sacks Date: Fri, 29 Apr 2011 08:28:46 -0400 Subject: [PATCH 111/112] Add muse theme for 256 color terminals --- themes/muse.zsh-theme | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 themes/muse.zsh-theme diff --git a/themes/muse.zsh-theme b/themes/muse.zsh-theme new file mode 100644 index 000000000..4bd8fb825 --- /dev/null +++ b/themes/muse.zsh-theme @@ -0,0 +1,30 @@ +#!/usr/bin/env zsh +#local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + +setopt promptsubst + +autoload -U add-zsh-hook + +PROMPT_SUCCESS_COLOR=$FG[117] +PROMPT_FAILURE_COLOR=$FG[124] +PROMPT_VCS_INFO_COLOR=$FG[242] +PROMPT_PROMPT=$FG[077] +GIT_DIRTY_COLOR=$FG[133] +GIT_CLEAN_COLOR=$FG[118] +GIT_PROMPT_INFO=$FG[012] + +PROMPT='%{$PROMPT_SUCCESS_COLOR%}%~%{$reset_color%} %{$GIT_PROMPT_INFO%}$(git_prompt_info)%{$GIT_DIRTY_COLOR%}$(git_prompt_status) %{$reset_color%}%{$PROMPT_PROMPT%}ᐅ%{$reset_color%} ' + +#RPS1="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX="(" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%})" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" + +ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}" From 626fa5b1d83abb145452deaa610fc8f7a59293c1 Mon Sep 17 00:00:00 2001 From: nebirhos Date: Fri, 29 Apr 2011 17:12:40 +0200 Subject: [PATCH 112/112] fixed autoupdate --- tools/check_for_upgrade.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 4643739ca..e1e4eb99f 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -25,10 +25,11 @@ then if [ "$line" = Y ] || [ "$line" = y ] then /bin/sh $ZSH/tools/upgrade.sh + # update the zsh file + _update_zsh_update fi fi +else + # create the zsh file + _update_zsh_update fi - -# update the zsh file -_update_zsh_update -