summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.markdown10
-rw-r--r--lib/git.zsh12
-rw-r--r--plugins/asdf/README.md27
-rw-r--r--plugins/asdf/asdf.plugin.zsh7
-rw-r--r--plugins/bundler/README.md1
-rw-r--r--plugins/geeknote/README.md12
-rw-r--r--plugins/geeknote/_geeknote136
-rw-r--r--plugins/geeknote/geeknote.plugin.zsh2
-rw-r--r--plugins/git/git.plugin.zsh10
-rw-r--r--plugins/github/README.md4
-rw-r--r--plugins/github/github.plugin.zsh2
-rw-r--r--plugins/mix/_mix4
-rw-r--r--plugins/npm/npm.plugin.zsh3
-rw-r--r--plugins/symfony2/symfony2.plugin.zsh2
-rw-r--r--plugins/textmate/textmate.plugin.zsh11
-rwxr-xr-xplugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh3
-rw-r--r--themes/avit.zsh-theme21
-rw-r--r--themes/bira.zsh-theme8
-rw-r--r--themes/bureau.zsh-theme54
-rw-r--r--themes/candy.zsh-theme2
-rw-r--r--themes/kennethreitz.zsh-theme8
-rw-r--r--themes/sunrise.zsh-theme6
-rw-r--r--themes/ys.zsh-theme54
23 files changed, 312 insertions, 87 deletions
diff --git a/README.markdown b/README.markdown
index 843c0c6ba..0cbea72c9 100644
--- a/README.markdown
+++ b/README.markdown
@@ -12,9 +12,9 @@ To learn more, visit [ohmyz.sh](http://ohmyz.sh) and follow [@ohmyzsh](https://t
### Prerequisites
-__Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._
+__Disclaimer:__ _Oh My Zsh works best on OS X and Linux._
-* Unix-based operating system (Mac OS X or Linux)
+* Unix-based operating system (OS X or Linux)
* [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
* `curl` or `wget` should be installed
* `git` should be installed
@@ -26,13 +26,13 @@ Oh My Zsh is installed by running one of the following commands in your terminal
#### via curl
```shell
-sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
#### via wget
```shell
-sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
+sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
```
## Using Oh My Zsh
@@ -104,7 +104,7 @@ The default location is `~/.oh-my-zsh` (hidden in your home directory)
If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
```shell
-export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
#### Manual Installation
diff --git a/lib/git.zsh b/lib/git.zsh
index f91b516bd..1c76d5882 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -188,6 +188,18 @@ function git_compare_version() {
echo 0
}
+# Outputs the name of the current user
+# Usage example: $(git_current_user_name)
+function git_current_user_name() {
+ command git config user.name 2>/dev/null
+}
+
+# Outputs the email of the current user
+# Usage example: $(git_current_user_email)
+function git_current_user_email() {
+ command git config user.email 2>/dev/null
+}
+
# This is unlikely to change so make it all statically assigned
POST_1_7_2_GIT=$(git_compare_version "1.7.2")
# Clean up the namespace slightly by removing the checker function
diff --git a/plugins/asdf/README.md b/plugins/asdf/README.md
new file mode 100644
index 000000000..e8aa976bc
--- /dev/null
+++ b/plugins/asdf/README.md
@@ -0,0 +1,27 @@
+## asdf
+
+**Maintainer:** [@RobLoach](https://github.com/RobLoach)
+
+Adds integration with [asdf](https://github.com/asdf-vm/asdf), the extendable version manager, with support for Ruby, Node.js, Elixir, Erlang and more.
+
+### Installation
+
+1. Enable the plugin by adding it to your `plugins` definition in `~/.zshrc`.
+
+ ```
+ plugins=(asdf)
+ ```
+
+2. [Install asdf](https://github.com/asdf-vm/asdf#setup) by running the following:
+ ```
+ git clone https://github.com/asdf-vm/asdf.git ~/.asdf
+ ```
+
+### Usage
+
+See the [asdf usage documentation](https://github.com/asdf-vm/asdf#usage) for information on how to use asdf:
+
+```
+asdf plugin-add nodejs git@github.com:asdf-vm/asdf-nodejs.git
+asdf install nodejs 5.9.1
+```
diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh
new file mode 100644
index 000000000..8736d2ff8
--- /dev/null
+++ b/plugins/asdf/asdf.plugin.zsh
@@ -0,0 +1,7 @@
+# Find where asdf should be installed.
+ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}"
+
+# Load asdf, if found.
+if [ -f $ASDF_DIR/asdf.sh ]; then
+ . $ASDF_DIR/asdf.sh
+fi
diff --git a/plugins/bundler/README.md b/plugins/bundler/README.md
index edd95ccc2..04d551447 100644
--- a/plugins/bundler/README.md
+++ b/plugins/bundler/README.md
@@ -6,6 +6,7 @@
- `bl` aliased to `bundle list`
- `bp` aliased to `bundle package`
- `bo` aliased to `bundle open`
+ - `bout` aliased to `bundle outdated`
- `bu` aliased to `bundle update`
- `bi` aliased to `bundle install --jobs=<cpu core count>` (only for bundler `>= 1.4.0`)
- adds a wrapper for common gems:
diff --git a/plugins/geeknote/README.md b/plugins/geeknote/README.md
new file mode 100644
index 000000000..a6b50e27f
--- /dev/null
+++ b/plugins/geeknote/README.md
@@ -0,0 +1,12 @@
+## ZSH-Geeknote
+
+[Geeknote](https://github.com/VitaliyRodnenko/geeknote) plugin for [oh-my-zsh framework](http://github.com/robbyrussell/oh-my-zsh).
+
+Plugins provides:
+
+- auto completion of commands and their options
+- alias `gn`
+
+You can find information how to install Geeknote and it's available commands on the [project website](http://www.geeknote.me/).
+
+Maintainer : Ján Koščo ([@s7anley](https://twitter.com/s7anley))
diff --git a/plugins/geeknote/_geeknote b/plugins/geeknote/_geeknote
new file mode 100644
index 000000000..cf1a187d2
--- /dev/null
+++ b/plugins/geeknote/_geeknote
@@ -0,0 +1,136 @@
+#compdef geeknote
+# --------------- ------------------------------------------------------------
+# Name : _geeknote
+# Synopsis : zsh completion for geeknote
+# Author : Ján Koščo <3k.stanley@gmail.com>
+# HomePage : http://www.geeknote.me
+# Version : 0.1
+# Tag : [ shell, zsh, completion, evernote ]
+# Copyright : © 2014 by Ján Koščo,
+# Released under current GPL license.
+# --------------- ------------------------------------------------------------
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'login'
+ 'logout'
+ 'settings'
+ 'create'
+ 'edit'
+ 'find'
+ 'show'
+ 'remove'
+ 'notebook-list'
+ 'notebook-create'
+ 'notebook-edit'
+ 'tag-list'
+ 'tag-create'
+ 'tag-edit'
+ 'tag-remove'
+ 'gnsync'
+ 'user'
+)
+
+_arguments '*:: :->command'
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "geeknote command" _1st_arguments
+ return
+fi
+
+local -a _command_args
+case "$words[1]" in
+ user)
+ _command_args=(
+ '(--full)--full' \
+ )
+ ;;
+ logout)
+ _command_args=(
+ '(--force)--force' \
+ )
+ ;;
+ settings)
+ _command_args=(
+ '(--editor)--editor' \
+ )
+ ;;
+ create)
+ _command_args=(
+ '(-t|--title)'{-t,--title}'[note title]' \
+ '(-c|--content)'{-c,--content}'[note content]' \
+ '(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \
+ '(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \
+ )
+ ;;
+ edit)
+ _command_args=(
+ '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \
+ '(-t|--title)'{-t,--title}'[note title]' \
+ '(-c|--content)'{-c,--content}'[note content]' \
+ '(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \
+ '(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \
+ )
+ ;;
+ remove)
+ _command_args=(
+ '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \
+ '(--force)--force' \
+ )
+ ;;
+ show)
+ _command_args=(
+ '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \
+ )
+ ;;
+ find)
+ _command_args=(
+ '(-s|--search)'{-s,--search}'[text to search]' \
+ '(-tg|--tags)'{-tg,--tags}'[notes with which tag/tags to search]' \
+ '(-nb|--notebook)'{-nb,--notebook}'[in which notebook search the note]' \
+ '(-d|--date)'{-d,--date}'[date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy]' \
+ '(-cn|--count)'{-cn,--count}'[how many notes show in the result list]' \
+ '(-uo|--url-only)'{-uo,--url-only}'[add direct url of each note in results to Evernote web-version]' \
+ '(-ee|--exact-entry)'{-ee,--exact-entry}'[search for exact entry of the request]' \
+ '(-cs|--content-search)'{-cs,--content-search}'[search by content, not by title]' \
+ )
+ ;;
+ notebook-create)
+ _command_args=(
+ '(-t|--title)'{-t,--title}'[notebook title]' \
+ )
+ ;;
+ notebook-edit)
+ _command_args=(
+ '(-nb|--notebook)'{-nb,--notebook}'[name of notebook to rename]' \
+ '(-t|--title)'{-t,--title}'[new notebook title]' \
+ )
+ ;;
+ notebook-remove)
+ _command_args=(
+ '(-nb|--notebook)'{-nb,--notebook}'[name of notebook to remove]' \
+ '(--force)--force' \
+ )
+ ;;
+ tag-create)
+ _command_args=(
+ '(-t|--title)'{-t,--title}'[title of tag]' \
+ )
+ ;;
+ tag-edit)
+ _command_args=(
+ '(-tgn|--tagname)'{-tgn,--tagname}'[tag to edit]' \
+ '(-t|--title)'{-t,--title}'[new tag name]' \
+ )
+ ;;
+ tag-remove)
+ _command_args=(
+ '(-tgn|--tagname)'{-tgn,--tagname}'[tag to remove]' \
+ '(--force)--force' \
+ )
+ ;;
+ esac
+
+_arguments \
+ $_command_args \
+ && return 0
diff --git a/plugins/geeknote/geeknote.plugin.zsh b/plugins/geeknote/geeknote.plugin.zsh
new file mode 100644
index 000000000..8126d26b3
--- /dev/null
+++ b/plugins/geeknote/geeknote.plugin.zsh
@@ -0,0 +1,2 @@
+#Alias
+alias gn='geeknote'
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 4291da7ba..95ce1ae26 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -146,15 +146,15 @@ alias gke='\gitk --all $(git log -g --pretty=format:%h)'
compdef _git gke='gitk'
alias gl='git pull'
-alias glg='git log --stat --color'
-alias glgp='git log --stat --color -p'
-alias glgg='git log --graph --color'
+alias glg='git log --stat'
+alias glgp='git log --stat -p'
+alias glgg='git log --graph'
alias glgga='git log --graph --decorate --all'
alias glgm='git log --graph --max-count=10'
-alias glo='git log --oneline --decorate --color'
+alias glo='git log --oneline --decorate'
alias glol="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
alias glola="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all"
-alias glog='git log --oneline --decorate --color --graph'
+alias glog='git log --oneline --decorate --graph'
alias glp="_git_log_prettily"
compdef _git glp=git-log
diff --git a/plugins/github/README.md b/plugins/github/README.md
index 21b7367f7..fea607876 100644
--- a/plugins/github/README.md
+++ b/plugins/github/README.md
@@ -1,6 +1,6 @@
# github
-This plugin supports working with GitHub the command line. It provides a few things:
+This plugin supports working with GitHub from the command line. It provides a few things:
* Sets up the `hub` wrapper and completions for the `git` command if you have `hub` installed.
* Completion for the `github` Ruby gem.
@@ -37,7 +37,7 @@ See `man hub` for more details.
### Homebrew installation note
-If you have installed `hub` using Homebrew, its completions may not be on your `$FPATH` if you are using the system `zsh`. Homebrew installs `zsh` completion definitions to `/usr/local/share/zsh/site-functions`, which on `$FPATH` for the Homebrew-installed `zsh`, but not for the system `zsh`. If you want it to work with the system `zsh`, add this to your `~/.zshrc` before it sources `oh-my-zsh.sh`.
+If you have installed `hub` using Homebrew, its completions may not be on your `$FPATH` if you are using the system `zsh`. Homebrew installs `zsh` completion definitions to `/usr/local/share/zsh/site-functions`, which will be on `$FPATH` for the Homebrew-installed `zsh`, but not for the system `zsh`. If you want it to work with the system `zsh`, add this to your `~/.zshrc` before it sources `oh-my-zsh.sh`.
```zsh
if (( ! ${fpath[(I)/usr/local/share/zsh/site-functions]} )); then
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index ca19901fd..0ab399c97 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -71,7 +71,7 @@ exist_gh() { # [DIRECTORY]
#
git.io() {
emulate -L zsh
- curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "
+ curl -i -s https://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "
}
# End Functions #############################################################
diff --git a/plugins/mix/_mix b/plugins/mix/_mix
index 319932b3f..3b3887b1f 100644
--- a/plugins/mix/_mix
+++ b/plugins/mix/_mix
@@ -73,6 +73,10 @@ case $state in
case $line[1] in
(help)
_arguments ':feature:__task_list'
+ ;;
+ (test)
+ _files
+ ;;
esac
;;
esac
diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh
index 3f6fe0fb3..38e699ea0 100644
--- a/plugins/npm/npm.plugin.zsh
+++ b/plugins/npm/npm.plugin.zsh
@@ -17,3 +17,6 @@ alias npmD="npm i -D "
# Execute command from node_modules folder based on current directory
# i.e npmE gulp
alias npmE='PATH="$(npm bin)":"$PATH"'
+
+# Check which npm modules are outdated
+alias npmO="npm outdated"
diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh
index 98a2321db..fe236a298 100644
--- a/plugins/symfony2/symfony2.plugin.zsh
+++ b/plugins/symfony2/symfony2.plugin.zsh
@@ -25,3 +25,5 @@ alias sfcw='sf cache:warmup'
alias sfroute='sf router:debug'
alias sfcontainer='sf container:debug'
alias sfgb='sf generate:bundle'
+alias sfdev='sf --env=dev'
+alias sfprod='sf --env=prod'
diff --git a/plugins/textmate/textmate.plugin.zsh b/plugins/textmate/textmate.plugin.zsh
index 02813de9e..174511019 100644
--- a/plugins/textmate/textmate.plugin.zsh
+++ b/plugins/textmate/textmate.plugin.zsh
@@ -1,13 +1,14 @@
# If the tm command is called without an argument, open TextMate in the current directory
# If tm is passed a directory, cd to it and open it in TextMate
-# If tm is passed a file, open it in TextMate
+# If tm is passed anything else (i.e., a list of files and/or options), pass them all along
+# This allows easy opening of multiple files.
function tm() {
if [[ -z $1 ]]; then
mate .
- else
+ elif [[ -d $1 ]]; then
mate $1
- if [[ -d $1 ]]; then
- cd $1
- fi
+ cd $1
+ else
+ mate "$@"
fi
}
diff --git a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
index 16247b8db..4aa3aa4b8 100755
--- a/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
+++ b/plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
@@ -23,6 +23,9 @@ for i; do
fi
done
+# Don't leave positional parameters being set
+set --
+
#
# Load functions
#
diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme
index 65466b82f..87d5be30a 100644
--- a/themes/avit.zsh-theme
+++ b/themes/avit.zsh-theme
@@ -2,16 +2,25 @@
PROMPT='
$(_user_host)${_current_dir} $(git_prompt_info) $(_ruby_version)
-▶ '
+%{$fg[$CARETCOLOR]%}▶%{$resetcolor%} '
-PROMPT2='%{$fg[grey]%}◀%{$reset_color%} '
+PROMPT2='%{$fg[$CARETCOLOR]%}◀%{$reset_color%} '
RPROMPT='$(_vi_status)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}'
-local _current_dir="%{$fg[blue]%}%3~%{$reset_color%} "
-local _return_status="%{$fg[red]%}%(?..⍉)%{$reset_color%}"
+local _current_dir="%{$fg_bold[blue]%}%3~%{$reset_color%} "
+local _return_status="%{$fg_bold[red]%}%(?..⍉)%{$reset_color%}"
local _hist_no="%{$fg[grey]%}%h%{$reset_color%}"
+function _current_dir() {
+ local _max_pwd_length="65"
+ if [[ $(echo -n $PWD | wc -c) -gt ${_max_pwd_length} ]]; then
+ echo "%{$fg_bold[blue]%}%-2~ ... %3~%{$reset_color%} "
+ else
+ echo "%{$fg_bold[blue]%}%~%{$reset_color%} "
+ fi
+}
+
function _user_host() {
if [[ -n $SSH_CONNECTION ]]; then
me="%n@%m"
@@ -85,13 +94,13 @@ 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[cyan]%}§ "
-ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}◒ "
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[white]%}◒ "
# 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[grey]%}"
+ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[white]%}"
# LS colors, made with http://geoff.greer.fm/lscolors/
export LSCOLORS="exfxcxdxbxegedabagacad"
diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme
index 215720477..1ead93553 100644
--- a/themes/bira.zsh-theme
+++ b/themes/bira.zsh-theme
@@ -1,7 +1,13 @@
# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
-local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
+
+if [[ $UID -eq 0 ]]; then
+ local user_host='%{$terminfo[bold]$fg[red]%}%n@%m%{$reset_color%}'
+else
+ local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
+fi
+
local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
local rvm_ruby=''
if which rvm-prompt &> /dev/null; then
diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme
index 148abec10..3b3bdc80f 100644
--- a/themes/bureau.zsh-theme
+++ b/themes/bureau.zsh-theme
@@ -22,34 +22,44 @@ bureau_git_branch () {
echo "${ref#refs/heads/}"
}
-bureau_git_status () {
- _INDEX=$(command git status --porcelain -b 2> /dev/null)
+bureau_git_status() {
_STATUS=""
- if $(echo "$_INDEX" | grep '^[AMRD]. ' &> /dev/null); then
- _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED"
- fi
- if $(echo "$_INDEX" | grep '^.[MTD] ' &> /dev/null); then
- _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED"
- fi
- if $(echo "$_INDEX" | command grep -E '^\?\? ' &> /dev/null); then
- _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED"
- fi
- if $(echo "$_INDEX" | grep '^UU ' &> /dev/null); then
- _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED"
- fi
- if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
- _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED"
+
+ # check status of files
+ _INDEX=$(command git status --porcelain 2> /dev/null)
+ if [[ -n "$_INDEX" ]]; then
+ if $(echo "$_INDEX" | command grep -q '^[AMRD]. '); then
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED"
+ fi
+ if $(echo "$_INDEX" | command grep -q '^.[MTD] '); then
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED"
+ fi
+ if $(echo "$_INDEX" | command grep -q -E '^\?\? '); then
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED"
+ fi
+ if $(echo "$_INDEX" | command grep -q '^UU '); then
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED"
+ fi
+ else
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
fi
- if $(echo "$_INDEX" | grep '^## .*ahead' &> /dev/null); then
+
+ # check status of local repository
+ _INDEX=$(command git status --porcelain -b 2> /dev/null)
+ if $(echo "$_INDEX" | command grep -q '^## .*ahead'); then
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_AHEAD"
fi
- if $(echo "$_INDEX" | grep '^## .*behind' &> /dev/null); then
+ if $(echo "$_INDEX" | command grep -q '^## .*behind'); then
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_BEHIND"
fi
- if $(echo "$_INDEX" | grep '^## .*diverged' &> /dev/null); then
+ if $(echo "$_INDEX" | command grep -q '^## .*diverged'); then
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_DIVERGED"
fi
+ if $(command git rev-parse --verify refs/stash &> /dev/null); then
+ _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED"
+ fi
+
echo $_STATUS
}
@@ -84,10 +94,10 @@ _LIBERTY="$_LIBERTY%{$reset_color%}"
get_space () {
local STR=$1$2
local zero='%([BSUbfksu]|([FB]|){*})'
- local LENGTH=${#${(S%%)STR//$~zero/}}
+ local LENGTH=${#${(S%%)STR//$~zero/}}
local SPACES=""
(( LENGTH = ${COLUMNS} - $LENGTH - 1))
-
+
for i in {0..$LENGTH}
do
SPACES="$SPACES "
@@ -101,7 +111,7 @@ _1RIGHT="[%*] "
bureau_precmd () {
_1SPACES=`get_space $_1LEFT $_1RIGHT`
- print
+ print
print -rP "$_1LEFT$_1SPACES$_1RIGHT"
}
diff --git a/themes/candy.zsh-theme b/themes/candy.zsh-theme
index bc125c5ce..40e6d411e 100644
--- a/themes/candy.zsh-theme
+++ b/themes/candy.zsh-theme
@@ -1,4 +1,4 @@
-PROMPT=$'%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\
+PROMPT=$'%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%X]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\
%{$fg[blue]%}->%{$fg_bold[blue]%} %#%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}["
diff --git a/themes/kennethreitz.zsh-theme b/themes/kennethreitz.zsh-theme
index 109be0c22..b255a8d66 100644
--- a/themes/kennethreitz.zsh-theme
+++ b/themes/kennethreitz.zsh-theme
@@ -1,13 +1,15 @@
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
-PROMPT='%{$fg[green]%}%c \
+PROMPT='$(virtualenv_prompt_info)%{%}%{$fg[green]%}%c \
$(git_prompt_info)\
+\
%{$fg[red]%}%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='%{$fg[blue]%}%~%{$reset_color%} ${return_code} '
-ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}:: %{$fg[yellow]%}("
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[yellow]%}("
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$fg[yellow]%}"
-
+ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX="%{$reset_color%}%{%}%{$fg[blue]%}"
+ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX="!%{$reset_color%} " \ No newline at end of file
diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme
index 57d2649c6..e3f4019d6 100644
--- a/themes/sunrise.zsh-theme
+++ b/themes/sunrise.zsh-theme
@@ -10,9 +10,9 @@ B=$fg_no_bold[blue]
RESET=$reset_color
if [ "$USER" = "root" ]; then
- PROMPTCOLOR="%{$R%}" PREFIX="-!-";
+ PROMPTCOLOR="%{$R%}" PROMPTPREFIX="-!-";
else
- PROMPTCOLOR="" PREFIX="---";
+ PROMPTCOLOR="" PROMPTPREFIX="---";
fi
local return_code="%(?..%{$R%}%? ↵%{$RESET%})"
@@ -66,7 +66,7 @@ function custom_git_prompt() {
}
# %B sets bold text
-PROMPT='%B$PREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} '
+PROMPT='%B$PROMPTPREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} '
RPS1="${return_code}"
ZSH_THEME_GIT_PROMPT_PREFIX="%{$Y%}‹"
diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme
index fd8adc41e..89d5355dc 100644
--- a/themes/ys.zsh-theme
+++ b/themes/ys.zsh-theme
@@ -1,18 +1,9 @@
# Clean, simple, compatible and meaningful.
# Tested on Linux, Unix and Windows under ANSI colors.
-# It is recommended to use with a dark background and the font Inconsolata.
+# It is recommended to use with a dark background.
# Colors: black, red, green, yellow, *blue, magenta, cyan, and white.
-#
-# http://ysmood.org/wp/2013/03/my-ys-terminal-theme/
-# Mar 2013 ys
-
-# Machine name.
-function box_name {
- [ -f ~/.box-name ] && cat ~/.box-name || echo $HOST
-}
-
-# Directory info.
-local current_dir='${PWD/#$HOME/~}'
+#
+# Mar 2013 Yad Smood
# VCS
YS_VCS_PROMPT_PREFIX1=" %{$fg[white]%}on%{$reset_color%} "
@@ -21,7 +12,7 @@ YS_VCS_PROMPT_SUFFIX="%{$reset_color%}"
YS_VCS_PROMPT_DIRTY=" %{$fg[red]%}x"
YS_VCS_PROMPT_CLEAN=" %{$fg[green]%}o"
-# Git info.
+# Git info
local git_info='$(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="${YS_VCS_PROMPT_PREFIX1}git${YS_VCS_PROMPT_PREFIX2}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$YS_VCS_PROMPT_SUFFIX"
@@ -44,29 +35,26 @@ ys_hg_prompt_info() {
fi
}
-# Prompt format: \n # USER at MACHINE in DIRECTORY on git:BRANCH STATE [TIME] \n $
-PROMPT="
-%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \
-%{$fg[cyan]%}%n \
-%{$fg[white]%}at \
-%{$fg[green]%}$(box_name) \
-%{$fg[white]%}in \
-%{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\
-${hg_info}\
-${git_info} \
-%{$fg[white]%}[%*]
-%{$terminfo[bold]$fg[red]%}$ %{$reset_color%}"
+local exit_code="%(?,,C:%{$fg[red]%}%?%{$reset_color%})"
-if [[ "$USER" == "root" ]]; then
+# Prompt format:
+#
+# PRIVILEGES USER @ MACHINE in DIRECTORY on git:BRANCH STATE [TIME] C:LAST_EXIT_CODE
+# $ COMMAND
+#
+# For example:
+#
+# % ys @ ys-mbp in ~/.oh-my-zsh on git:master x [21:47:42] C:0
+# $
PROMPT="
%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \
-%{$bg[yellow]%}%{$fg[cyan]%}%n%{$reset_color%} \
-%{$fg[white]%}at \
-%{$fg[green]%}$(box_name) \
+%(#,%{$bg[yellow]%}%{$fg[black]%}%n%{$reset_color%},%{$fg[cyan]%}%n) \
+%{$fg[white]%}@ \
+%{$fg[green]%}%m \
%{$fg[white]%}in \
-%{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\
+%{$terminfo[bold]$fg[yellow]%}%~%{$reset_color%}\
${hg_info}\
-${git_info} \
-%{$fg[white]%}[%*]
+${git_info}\
+ \
+%{$fg[white]%}[%*] $exit_code
%{$terminfo[bold]$fg[red]%}$ %{$reset_color%}"
-fi