summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.textile18
-rw-r--r--lib/completion.zsh1
-rw-r--r--lib/termsupport.zsh13
-rw-r--r--plugins/git/git.plugin.zsh21
-rw-r--r--plugins/github/github.plugin.zsh7
-rw-r--r--plugins/npm/_npm19
-rw-r--r--plugins/npm/npm.plugin.zsh4
-rw-r--r--templates/zshrc.zsh-template3
-rw-r--r--themes/frisk.zsh-theme10
-rw-r--r--themes/kolo.zsh-theme21
-rw-r--r--themes/kphoen.zsh-theme50
11 files changed, 151 insertions, 16 deletions
diff --git a/README.textile b/README.textile
index 0659aded8..d01c3310a 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
@@ -54,16 +54,18 @@ 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!
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.
+
+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
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=''
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index d7c2b9def..3152751e4 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -3,11 +3,12 @@
#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)
+ [ "$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
+ 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
}
@@ -21,6 +22,8 @@ function precmd {
#Appears at the beginning of (and during) of command execution
function preexec {
+ 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%<<"
}
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 71a62819b..bc340e86b 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -1,22 +1,36 @@
# Aliases
alias g='git'
+compdef g=git
alias gst='git status'
+compdef _git gst=git-status
alias gl='git pull'
+compdef _git gl=git-pull
alias gup='git fetch && git rebase'
+compdef _git gup=git-fetch
alias gp='git push'
-alias gd='git diff | mate'
-alias gdv='git diff -w "$@" | vim -R -'
+compdef _git gp=git-push
+gdv() { git-diff -w "$@" | view - }
+compdef _git gdv=git-diff
alias gc='git commit -v'
+compdef _git gc=git-commit
alias gca='git commit -v -a'
+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 _git gba=git-branch
alias gcount='git shortlog -sn'
+compdef gcount=git
alias gcp='git cherry-pick'
+compdef _git gcp=git-cherry-pick
alias glg='git log --stat --max-count=5'
+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
@@ -29,5 +43,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
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index c23504b85..8d4580654 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -1,3 +1,10 @@
+# hub alias from defunkt
+# https://github.com/defunkt/hub
+if [ "$commands[(I)hub]" ]; then
+ # eval `hub alias -s zsh`
+ function git(){hub "$@"}
+fi
+
# add github completion function to path
fpath=($ZSH/plugins/github $fpath)
autoload -U compinit
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
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)
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=""
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%}%% '
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