mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-16 02:27:03 +01:00
Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh
* 'master' of git://github.com/robbyrussell/oh-my-zsh: (130 commits) Fixes #1489 add unbundled command Revert "agnoster theme shows error code instead of an "x"" Add Stash toogle to display if there's some stash or not in `git_prompt_status` fixes #1474 add zeus to bundle exec listx use feature names instead of failing branch names in "git flow feature" Unset `config_file` variable in oh-my-zsh.sh Added a `migrate` alias. Fix prompt color: Change it back to green plugin last-working-dir: create cache-directory if it doesn't exist Print last exit status in mortalscumbag prompt urltools for Everyone Backwards Compatible Jira URLs #1378 use lazy load for virtualenvwrapper hg_current_branch added to mercurial plugin Fixing conflict in install scripts Fixed Kernel Detection in battery plugin resolving conflict in termsupport plugin git find Functions for managing pacman-key ...
This commit is contained in:
commit
002cea8c13
75 changed files with 1555 additions and 361 deletions
|
|
@ -26,17 +26,20 @@ h3. The manual way
|
||||||
|
|
||||||
@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@
|
@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@
|
||||||
|
|
||||||
2. Create a new zsh config by copying the zsh template we've provided.
|
2. *OPTIONAL* Backup your existing ~/.zshrc file
|
||||||
|
|
||||||
*NOTE*: If you already have a ~/.zshrc file, you should back it up. @cp ~/.zshrc ~/.zshrc.orig@ in case you want to go back to your original settings.
|
@cp ~/.zshrc ~/.zshrc.orig@
|
||||||
|
|
||||||
|
3. Create a new zsh config by copying the zsh template we've provided.
|
||||||
|
|
||||||
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
|
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
|
||||||
|
|
||||||
3. Set zsh as your default shell:
|
|
||||||
|
4. Set zsh as your default shell:
|
||||||
|
|
||||||
@chsh -s /bin/zsh@
|
@chsh -s /bin/zsh@
|
||||||
|
|
||||||
4. Start / restart zsh (open a new terminal is easy enough...)
|
5. Start / restart zsh (open a new terminal is easy enough...)
|
||||||
|
|
||||||
h3. Problems?
|
h3. Problems?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ alias -- -='cd -'
|
||||||
|
|
||||||
# Super user
|
# Super user
|
||||||
alias _='sudo'
|
alias _='sudo'
|
||||||
|
alias please='sudo'
|
||||||
|
|
||||||
#alias g='grep -in'
|
#alias g='grep -in'
|
||||||
|
|
||||||
|
|
@ -16,8 +17,9 @@ alias history='fc -l 1'
|
||||||
|
|
||||||
# List direcory contents
|
# List direcory contents
|
||||||
alias lsa='ls -lah'
|
alias lsa='ls -lah'
|
||||||
alias l='ls -la'
|
alias l='ls -lA1'
|
||||||
alias ll='ls -l'
|
alias ll='ls -l'
|
||||||
|
alias la='ls -lA'
|
||||||
alias sl=ls # often screw this up
|
alias sl=ls # often screw this up
|
||||||
|
|
||||||
alias afind='ack-grep -il'
|
alias afind='ack-grep -il'
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir
|
||||||
cdpath=(.)
|
cdpath=(.)
|
||||||
|
|
||||||
# use /etc/hosts and known_hosts for hostname completion
|
# use /etc/hosts and known_hosts for hostname completion
|
||||||
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _global_ssh_hosts=()
|
||||||
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
||||||
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
||||||
hosts=(
|
hosts=(
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ cd () {
|
||||||
elif [[ "x$*" == "x...." ]]; then
|
elif [[ "x$*" == "x...." ]]; then
|
||||||
cd ../../..
|
cd ../../..
|
||||||
elif [[ "x$*" == "x....." ]]; then
|
elif [[ "x$*" == "x....." ]]; then
|
||||||
cd ../../..
|
|
||||||
elif [[ "x$*" == "x......" ]]; then
|
|
||||||
cd ../../../..
|
cd ../../../..
|
||||||
|
elif [[ "x$*" == "x......" ]]; then
|
||||||
|
cd ../../../../..
|
||||||
else
|
else
|
||||||
builtin cd "$@"
|
builtin cd "$@"
|
||||||
fi
|
fi
|
||||||
|
|
@ -37,8 +37,3 @@ cd () {
|
||||||
alias md='mkdir -p'
|
alias md='mkdir -p'
|
||||||
alias rd=rmdir
|
alias rd=rmdir
|
||||||
alias d='dirs -v | head -10'
|
alias d='dirs -v | head -10'
|
||||||
|
|
||||||
# mkdir & cd to it
|
|
||||||
function mcd() {
|
|
||||||
mkdir -p "$1" && cd "$1";
|
|
||||||
}
|
|
||||||
|
|
|
||||||
40
lib/git.zsh
40
lib/git.zsh
|
|
@ -1,6 +1,7 @@
|
||||||
# get the name of the branch we are on
|
# get the name of the branch we are on
|
||||||
function git_prompt_info() {
|
function git_prompt_info() {
|
||||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
|
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18,6 +19,25 @@ parse_git_dirty() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# get the difference between the local and remote branches
|
||||||
|
git_remote_status() {
|
||||||
|
remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
||||||
|
if [[ -n ${remote} ]] ; then
|
||||||
|
ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
||||||
|
behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
|
||||||
|
|
||||||
|
if [ $ahead -eq 0 ] && [ $behind -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
|
||||||
|
elif [ $ahead -gt 0 ] && [ $behind -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
||||||
|
elif [ $ahead -gt 0 ] && [ $behind -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Checks if there are commits ahead from remote
|
# Checks if there are commits ahead from remote
|
||||||
function git_prompt_ahead() {
|
function git_prompt_ahead() {
|
||||||
|
|
@ -38,7 +58,7 @@ function git_prompt_long_sha() {
|
||||||
|
|
||||||
# Get the status of the working tree
|
# Get the status of the working tree
|
||||||
git_prompt_status() {
|
git_prompt_status() {
|
||||||
INDEX=$(git status --porcelain 2> /dev/null)
|
INDEX=$(git status --porcelain -b 2> /dev/null)
|
||||||
STATUS=""
|
STATUS=""
|
||||||
if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
|
if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
||||||
|
|
@ -60,18 +80,32 @@ git_prompt_status() {
|
||||||
fi
|
fi
|
||||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||||
|
elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then
|
||||||
|
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||||
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||||
fi
|
fi
|
||||||
|
if $(git rev-parse --verify refs/stash >/dev/null 2>&1); then
|
||||||
|
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
|
||||||
|
fi
|
||||||
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
||||||
fi
|
fi
|
||||||
|
if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
|
||||||
|
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
|
||||||
|
fi
|
||||||
|
if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
|
||||||
|
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
|
||||||
|
fi
|
||||||
|
if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
|
||||||
|
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
|
||||||
|
fi
|
||||||
echo $STATUS
|
echo $STATUS
|
||||||
}
|
}
|
||||||
|
|
||||||
#compare the provided version of git to the version installed and on path
|
#compare the provided version of git to the version installed and on path
|
||||||
#prints 1 if input version <= installed version
|
#prints 1 if input version <= installed version
|
||||||
#prints -1 otherwise
|
#prints -1 otherwise
|
||||||
function git_compare_version() {
|
function git_compare_version() {
|
||||||
local INPUT_GIT_VERSION=$1;
|
local INPUT_GIT_VERSION=$1;
|
||||||
local INSTALLED_GIT_VERSION
|
local INSTALLED_GIT_VERSION
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,7 @@ bindkey "^[m" copy-prev-shell-word
|
||||||
setopt long_list_jobs
|
setopt long_list_jobs
|
||||||
|
|
||||||
## pager
|
## pager
|
||||||
export PAGER="less -R"
|
export PAGER="less"
|
||||||
|
export LESS="-R"
|
||||||
|
|
||||||
export LC_CTYPE=$LANG
|
export LC_CTYPE=$LANG
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
# get the name of the branch we are on
|
# get the name of the ruby version
|
||||||
function rvm_prompt_info() {
|
function rvm_prompt_info() {
|
||||||
ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return
|
[ -f $HOME/.rvm/bin/rvm-prompt ] || return
|
||||||
[[ ! -z $ruby_version ]] && echo "($ruby_version)"
|
local rvm_prompt
|
||||||
|
rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
|
||||||
|
[[ "${rvm_prompt}x" == "x" ]] && return
|
||||||
|
echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ function omz_termsupport_precmd {
|
||||||
function omz_termsupport_preexec {
|
function omz_termsupport_preexec {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt extended_glob
|
setopt extended_glob
|
||||||
local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
||||||
title "$CMD" "%100>...>$2%<<"
|
title "$CMD" "%100>...>${2:gs/%/%%}%<<"
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
autoload -U add-zsh-hook
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
|
||||||
|
|
||||||
# Load all of the config files in ~/oh-my-zsh that end in .zsh
|
# Load all of the config files in ~/oh-my-zsh that end in .zsh
|
||||||
# TIP: Add files you don't want in git to .gitignore
|
# TIP: Add files you don't want in git to .gitignore
|
||||||
for config_file ($ZSH/lib/*.zsh) source $config_file
|
for config_file ($ZSH/lib/*.zsh); do
|
||||||
|
source $config_file
|
||||||
|
done
|
||||||
|
|
||||||
# Set ZSH_CUSTOM to the path where your custom config files
|
# Set ZSH_CUSTOM to the path where your custom config files
|
||||||
# and plugins exists, or else we will use the default custom/
|
# and plugins exists, or else we will use the default custom/
|
||||||
|
|
@ -51,7 +53,10 @@ for plugin ($plugins); do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Load all of your custom configurations from custom/
|
# Load all of your custom configurations from custom/
|
||||||
for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file
|
for config_file ($ZSH_CUSTOM/*.zsh(N)); do
|
||||||
|
source $config_file
|
||||||
|
done
|
||||||
|
unset config_file
|
||||||
|
|
||||||
# Load the theme
|
# Load the theme
|
||||||
if [ "$ZSH_THEME" = "random" ]
|
if [ "$ZSH_THEME" = "random" ]
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ if [[ -x `which yaourt` ]]; then
|
||||||
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
|
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
|
||||||
alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation
|
alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation
|
||||||
alias yain='yaourt -S' # Install specific package(s) from the repositories
|
alias yain='yaourt -S' # Install specific package(s) from the repositories
|
||||||
alias yains='yaourt -U' # Install specific package not from the repositories but from a file
|
alias yains='yaourt -U' # Install specific package not from the repositories but from a file
|
||||||
alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies
|
alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies
|
||||||
alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies
|
alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies
|
||||||
alias yarep='yaourt -Si' # Display information about a given package in the repositories
|
alias yarep='yaourt -Si' # Display information about a given package in the repositories
|
||||||
|
|
@ -35,7 +35,7 @@ fi
|
||||||
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
|
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
|
||||||
alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
|
alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
|
||||||
alias pacin='sudo pacman -S' # Install specific package(s) from the repositories
|
alias pacin='sudo pacman -S' # Install specific package(s) from the repositories
|
||||||
alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file
|
alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file
|
||||||
alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies
|
alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies
|
||||||
alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies
|
alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies
|
||||||
alias pacrep='pacman -Si' # Display information about a given package in the repositories
|
alias pacrep='pacman -Si' # Display information about a given package in the repositories
|
||||||
|
|
@ -75,3 +75,19 @@ pacdisowned() {
|
||||||
|
|
||||||
comm -23 "$fs" "$db"
|
comm -23 "$fs" "$db"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pacmanallkeys() {
|
||||||
|
# Get all keys for developers and trusted users
|
||||||
|
curl https://www.archlinux.org/{developers,trustedusers}/ |
|
||||||
|
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
|
||||||
|
xargs sudo pacman-key --recv-keys
|
||||||
|
}
|
||||||
|
|
||||||
|
pacmansignkeys() {
|
||||||
|
for key in $*; do
|
||||||
|
sudo pacman-key --recv-keys $key
|
||||||
|
sudo pacman-key --lsign-key $key
|
||||||
|
printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
|
||||||
|
--no-permission-warning --command-fd 0 --edit-key $key
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed
|
||||||
. /usr/share/autojump/autojump.zsh
|
. /usr/share/autojump/autojump.zsh
|
||||||
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
|
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
|
||||||
. /etc/profile.d/autojump.zsh
|
. /etc/profile.d/autojump.zsh
|
||||||
|
elif [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
|
||||||
|
. $HOME/.autojump/etc/profile.d/autojump.zsh
|
||||||
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
|
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
|
||||||
. /opt/local/etc/profile.d/autojump.zsh
|
. /opt/local/etc/profile.d/autojump.zsh
|
||||||
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew
|
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,71 @@
|
||||||
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
###########################################
|
||||||
function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" }
|
# Battery plugin for oh-my-zsh #
|
||||||
function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') }
|
# Original Author: Peter hoeg (peterhoeg) #
|
||||||
function battery_pct_prompt() {
|
# Email: peter@speartail.com #
|
||||||
b=$(battery_pct_remaining)
|
###########################################
|
||||||
if [ $b -gt 50 ] ; then
|
# Author: Sean Jones (neuralsandwich) #
|
||||||
color='green'
|
# Email: neuralsandwich@gmail.com #
|
||||||
elif [ $b -gt 20 ] ; then
|
# Modified to add support for Apple Mac #
|
||||||
color='yellow'
|
###########################################
|
||||||
|
|
||||||
|
if [[ $(uname) == "Darwin" ]] ; then
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
typeset -F maxcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
|
||||||
|
typeset -F currentcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
|
||||||
|
integer i=$(((currentcapacity/maxcapacity) * 100))
|
||||||
|
echo $i
|
||||||
else
|
else
|
||||||
color='red'
|
echo "External Power"
|
||||||
fi
|
fi
|
||||||
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
error_msg='no battery'
|
function battery_time_remaining() {
|
||||||
function battery_pct_remaining() { echo $error_msg }
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
function battery_time_remaining() { echo $error_msg }
|
timeremaining=$(ioreg -rc "AppleSmartBattery"| grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
||||||
function battery_pct_prompt() { echo '' }
|
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
||||||
|
else
|
||||||
|
echo "∞"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_prompt () {
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [ $b -gt 50 ] ; then
|
||||||
|
color='green'
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
color='yellow'
|
||||||
|
else
|
||||||
|
color='red'
|
||||||
|
fi
|
||||||
|
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
elif [[ $(uname) == "Linux" ]] ; then
|
||||||
|
|
||||||
|
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
|
function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" }
|
||||||
|
function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') }
|
||||||
|
function battery_pct_prompt() {
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [ $b -gt 50 ] ; then
|
||||||
|
color='green'
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
color='yellow'
|
||||||
|
else
|
||||||
|
color='red'
|
||||||
|
fi
|
||||||
|
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error_msg='no battery'
|
||||||
|
function battery_pct_remaining() { echo $error_msg }
|
||||||
|
function battery_time_remaining() { echo $error_msg }
|
||||||
|
function battery_pct_prompt() { echo '' }
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ alias bu="bundle update"
|
||||||
|
|
||||||
# The following is based on https://github.com/gma/bundler-exec
|
# The following is based on https://github.com/gma/bundler-exec
|
||||||
|
|
||||||
bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma)
|
bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma zeus)
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
|
|
@ -33,6 +33,7 @@ _run-with-bundler() {
|
||||||
|
|
||||||
## Main program
|
## Main program
|
||||||
for cmd in $bundled_commands; do
|
for cmd in $bundled_commands; do
|
||||||
|
eval "function unbundled_$cmd () { $cmd \$@ }"
|
||||||
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
|
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
|
||||||
alias $cmd=bundled_$cmd
|
alias $cmd=bundled_$cmd
|
||||||
|
|
||||||
|
|
|
||||||
13
plugins/bwana/bwana.plugin.zsh
Normal file
13
plugins/bwana/bwana.plugin.zsh
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#
|
||||||
|
# Requires http://www.bruji.com/bwana/
|
||||||
|
#
|
||||||
|
if [[ -e /Applications/Bwana.app ]] ||
|
||||||
|
( system_profiler -detailLevel mini SPApplicationsDataType | grep -q Bwana )
|
||||||
|
then
|
||||||
|
function man() {
|
||||||
|
open "man:$1"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo "Bwana lets you read man files in Safari through a man: URI scheme"
|
||||||
|
echo "To use it within Zsh, install it from http://www.bruji.com/bwana/"
|
||||||
|
fi
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
stat -f%m . > /dev/null 2>&1
|
|
||||||
if [ "$?" = 0 ]; then
|
|
||||||
stat_cmd=(stat -f%m)
|
|
||||||
else
|
|
||||||
stat_cmd=(stat -L --format=%y)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cache filename
|
|
||||||
_cap_show_undescribed_tasks=0
|
|
||||||
|
|
||||||
# Cache filename
|
|
||||||
_cap_task_cache_file='.cap_task_cache'
|
|
||||||
|
|
||||||
_cap_get_task_list () {
|
|
||||||
if [ ${_cap_show_undescribed_tasks} -eq 0 ]; then
|
|
||||||
cap -T | grep '^cap' | cut -d " " -f 2
|
|
||||||
else
|
|
||||||
cap -vT | grep '^cap' | cut -d " " -f 2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_cap_does_task_list_need_generating () {
|
|
||||||
|
|
||||||
if [ ! -f ${_cap_task_cache_file} ]; then return 0;
|
|
||||||
else
|
|
||||||
accurate=$($stat_cmd $_cap_task_cache_file)
|
|
||||||
changed=$($stat_cmd config/deploy.rb)
|
|
||||||
return $(expr $accurate '>=' $changed)
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _cap () {
|
|
||||||
if [ -f config/deploy.rb ]; then
|
|
||||||
if _cap_does_task_list_need_generating; then
|
|
||||||
_cap_get_task_list > ${_cap_task_cache_file}
|
|
||||||
fi
|
|
||||||
compadd `cat ${_cap_task_cache_file}`
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
compdef _cap cap
|
|
||||||
10
plugins/capistrano/_capistrano
Normal file
10
plugins/capistrano/_capistrano
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#compdef cap
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
if [ -f config/deploy.rb ]; then
|
||||||
|
if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then
|
||||||
|
echo "\nGenerating .cap_tasks~..." > /dev/stderr
|
||||||
|
cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~
|
||||||
|
fi
|
||||||
|
compadd `cat .cap_tasks~`
|
||||||
|
fi
|
||||||
71
plugins/coffee/_coffee
Normal file
71
plugins/coffee/_coffee
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
#compdef coffee
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the zsh-users nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for Coffee.js v0.6.11 (http://coffeejs.org)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Mario Fernandez (https://github.com/sirech)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local curcontext="$curcontext" state line ret=1
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
'(- *)'{-h,--help}'[display this help message]' \
|
||||||
|
'(- *)'{-v,--version}'[display the version number]' \
|
||||||
|
'(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \
|
||||||
|
'(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \
|
||||||
|
'(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \
|
||||||
|
'(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \
|
||||||
|
'(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]' \
|
||||||
|
'(--nodejs)--nodejs[pass options directly to the "node" binary]' \
|
||||||
|
'(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \
|
||||||
|
'(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \
|
||||||
|
'(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \
|
||||||
|
'(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \
|
||||||
|
'(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \
|
||||||
|
'(-r --require)'{-r,--require}'[require a library before executing your script]:library' \
|
||||||
|
'(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \
|
||||||
|
'(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \
|
||||||
|
'*:script or directory:_files' && ret=0
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: Shell-Script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# indent-tabs-mode: nil
|
||||||
|
# sh-basic-offset: 2
|
||||||
|
# End:
|
||||||
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
|
@ -2,4 +2,4 @@
|
||||||
# as seen in http://www.porcheron.info/command-not-found-for-zsh/
|
# as seen in http://www.porcheron.info/command-not-found-for-zsh/
|
||||||
# this is installed in Ubuntu
|
# this is installed in Ubuntu
|
||||||
|
|
||||||
source /etc/zsh_command_not_found
|
[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
|
||||||
|
|
|
||||||
14
plugins/cp/cp.plugin.zsh
Normal file
14
plugins/cp/cp.plugin.zsh
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#Show progress while file is copying
|
||||||
|
|
||||||
|
# Rsync options are:
|
||||||
|
# -p - preserve permissions
|
||||||
|
# -o - preserve owner
|
||||||
|
# -g - preserve group
|
||||||
|
# -h - output in human-readable format
|
||||||
|
# --progress - display progress
|
||||||
|
# -b - instead of just overwriting an existing file, save the original
|
||||||
|
# --backup-dir=/tmp/rsync - move backup copies to "/tmp/rsync"
|
||||||
|
# -e /dev/null - only work on local files
|
||||||
|
# -- - everything after this is an argument, even if it looks like an option
|
||||||
|
|
||||||
|
alias cpv="rsync -poghb --backup-dir=/tmp/rsync -e /dev/null --progress --"
|
||||||
|
|
@ -6,14 +6,14 @@
|
||||||
|
|
||||||
# Use aptitude if installed, or apt-get if not.
|
# Use aptitude if installed, or apt-get if not.
|
||||||
# You can just set apt_pref='apt-get' to override it.
|
# You can just set apt_pref='apt-get' to override it.
|
||||||
if [[ -e $( which aptitude ) ]]; then
|
if [[ -e $( which aptitude 2>&1 ) ]]; then
|
||||||
apt_pref='aptitude'
|
apt_pref='aptitude'
|
||||||
else
|
else
|
||||||
apt_pref='apt-get'
|
apt_pref='apt-get'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use sudo by default if it's installed
|
# Use sudo by default if it's installed
|
||||||
if [[ -e $( which sudo ) ]]; then
|
if [[ -e $( which sudo 2>&1 ) ]]; then
|
||||||
use_sudo=1
|
use_sudo=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -21,7 +21,7 @@ fi
|
||||||
# These are for more obscure uses of apt-get and aptitude that aren't covered
|
# These are for more obscure uses of apt-get and aptitude that aren't covered
|
||||||
# below.
|
# below.
|
||||||
alias ag='apt-get'
|
alias ag='apt-get'
|
||||||
alias at='aptitude'
|
alias ap='aptitude'
|
||||||
|
|
||||||
# Some self-explanatory aliases
|
# Some self-explanatory aliases
|
||||||
alias acs="apt-cache search"
|
alias acs="apt-cache search"
|
||||||
|
|
@ -35,7 +35,7 @@ alias afs='apt-file search --regexp'
|
||||||
|
|
||||||
# These are apt-get only
|
# These are apt-get only
|
||||||
alias asrc='apt-get source'
|
alias asrc='apt-get source'
|
||||||
alias ap='apt-cache policy'
|
alias app='apt-cache policy'
|
||||||
|
|
||||||
# superuser operations ######################################################
|
# superuser operations ######################################################
|
||||||
if [[ $use_sudo -eq 1 ]]; then
|
if [[ $use_sudo -eq 1 ]]; then
|
||||||
|
|
|
||||||
44
plugins/forklift/forklift.plugin.zsh
Normal file
44
plugins/forklift/forklift.plugin.zsh
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
# Open folder in ForkLift.app from console
|
||||||
|
# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# fl [<folder>]
|
||||||
|
#
|
||||||
|
# Opens specified directory or current working directory in ForkLift.app
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# It assumes Shift+Cmd+G launches go to folder panel and Cmd+N opens new
|
||||||
|
# app window.
|
||||||
|
#
|
||||||
|
# https://gist.github.com/3313481
|
||||||
|
function fl {
|
||||||
|
if [ ! -z "$1" ]; then
|
||||||
|
DIR=$1
|
||||||
|
if [ ! -d "$DIR" ]; then
|
||||||
|
DIR=$(dirname $DIR)
|
||||||
|
fi
|
||||||
|
if [ "$DIR" != "." ]; then
|
||||||
|
PWD=`cd "$DIR";pwd`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
osascript 2>&1 1>/dev/null <<END
|
||||||
|
tell application "ForkLift"
|
||||||
|
activate
|
||||||
|
end tell
|
||||||
|
tell application "System Events"
|
||||||
|
tell application process "ForkLift"
|
||||||
|
try
|
||||||
|
set topWindow to window 1
|
||||||
|
on error
|
||||||
|
keystroke "n" using command down
|
||||||
|
set topWindow to window 1
|
||||||
|
end try
|
||||||
|
keystroke "g" using {command down, shift down}
|
||||||
|
tell sheet 1 of topWindow
|
||||||
|
set value of text field 1 to "$PWD"
|
||||||
|
keystroke return
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
@ -195,7 +195,7 @@ __git-flow-feature ()
|
||||||
'start:Start a new feature branch.'
|
'start:Start a new feature branch.'
|
||||||
'finish:Finish a feature branch.'
|
'finish:Finish a feature branch.'
|
||||||
'list:List all your feature branches. (Alias to `git flow feature`)'
|
'list:List all your feature branches. (Alias to `git flow feature`)'
|
||||||
'publish: public'
|
'publish: publish'
|
||||||
'track: track'
|
'track: track'
|
||||||
'diff: diff'
|
'diff: diff'
|
||||||
'rebase: rebase'
|
'rebase: rebase'
|
||||||
|
|
@ -221,6 +221,7 @@ __git-flow-feature ()
|
||||||
_arguments \
|
_arguments \
|
||||||
-F'[Fetch from origin before performing finish]' \
|
-F'[Fetch from origin before performing finish]' \
|
||||||
-r'[Rebase instead of merge]'\
|
-r'[Rebase instead of merge]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
':feature:__git_flow_feature_list'
|
':feature:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
@ -236,13 +237,13 @@ __git-flow-feature ()
|
||||||
|
|
||||||
(diff)
|
(diff)
|
||||||
_arguments \
|
_arguments \
|
||||||
':branch:__git_branch_names'\
|
':branch:__git_flow_feature_list'\
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(rebase)
|
(rebase)
|
||||||
_arguments \
|
_arguments \
|
||||||
-i'[Do an interactive rebase]' \
|
-i'[Do an interactive rebase]' \
|
||||||
':branch:__git_branch_names'
|
':branch:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(checkout)
|
(checkout)
|
||||||
|
|
@ -253,7 +254,7 @@ __git-flow-feature ()
|
||||||
(pull)
|
(pull)
|
||||||
_arguments \
|
_arguments \
|
||||||
':remote:__git_remotes'\
|
':remote:__git_remotes'\
|
||||||
':branch:__git_branch_names'
|
':branch:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|
@ -333,4 +334,4 @@ __git_command_successful () {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
zstyle ':completion:*:*:git:*' user-commands flow:'description for foo'
|
zstyle ':completion:*:*:git:*' user-commands flow:'description for foo'
|
||||||
|
|
|
||||||
348
plugins/git-hubflow/git-hubflow.plugin.zsh
Normal file
348
plugins/git-hubflow/git-hubflow.plugin.zsh
Normal file
|
|
@ -0,0 +1,348 @@
|
||||||
|
#!zsh
|
||||||
|
#
|
||||||
|
# Installation
|
||||||
|
# ------------
|
||||||
|
#
|
||||||
|
# To achieve git-hubflow 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-hubflow-completion.zsh) and put the following line in
|
||||||
|
# your .zshrc:
|
||||||
|
#
|
||||||
|
# source ~/.git-hubflow-completion.zsh
|
||||||
|
#
|
||||||
|
# c. Or, use this file as a oh-my-zsh plugin.
|
||||||
|
#
|
||||||
|
|
||||||
|
_git-hf ()
|
||||||
|
{
|
||||||
|
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.'
|
||||||
|
'update:Pull upstream changes down into your master and develop branches.'
|
||||||
|
'version:Shows version information.'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git hf' subcommands
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(init)
|
||||||
|
_arguments \
|
||||||
|
-f'[Force setting of gitflow branches, even if already configured]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(version)
|
||||||
|
;;
|
||||||
|
|
||||||
|
(hotfix)
|
||||||
|
__git-hf-hotfix
|
||||||
|
;;
|
||||||
|
|
||||||
|
(release)
|
||||||
|
__git-hf-release
|
||||||
|
;;
|
||||||
|
|
||||||
|
(feature)
|
||||||
|
__git-hf-feature
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-hf-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 hf release`)'
|
||||||
|
'cancel:Cancel release'
|
||||||
|
'push:Push release to github'
|
||||||
|
'pull:Pull release from github'
|
||||||
|
'track:Track release'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git hf release' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':version:__git_hf_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]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
|
-n"[Don't tag this release]"\
|
||||||
|
':version:__git_hf_version_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-hf-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 hf hotfix`)'
|
||||||
|
'publish:Publish the hotfix branch.'
|
||||||
|
'track:Track the hotfix branch.'
|
||||||
|
'pull:Pull the hotfix from github.'
|
||||||
|
'push:Push the hotfix to github.'
|
||||||
|
'cancel:Cancel the hotfix.'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git hf hotfix' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':hotfix:__git_hf_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]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
|
-n"[Don't tag this release]"\
|
||||||
|
':hotfix:__git_hf_hotfix_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-hf-feature ()
|
||||||
|
{
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
|
||||||
|
local -a subcommands
|
||||||
|
subcommands=(
|
||||||
|
'list:List all your feature branches. (Alias to `git hf feature`)'
|
||||||
|
'start:Start a new feature branch'
|
||||||
|
'finish:Finish a feature branch'
|
||||||
|
'submit:submit'
|
||||||
|
'track:track'
|
||||||
|
'diff:Diff'
|
||||||
|
'rebase:Rebase feature branch against develop'
|
||||||
|
'checkout:Checkout feature'
|
||||||
|
'pull:Pull feature branch from github'
|
||||||
|
'push:Push feature branch to github'
|
||||||
|
'cancel:Cancel feature'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git hf feature' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':feature:__git_hf_feature_list'\
|
||||||
|
':branch-name:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(finish)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]' \
|
||||||
|
-r'[Rebase instead of merge]'\
|
||||||
|
':feature:__git_hf_feature_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(publish)
|
||||||
|
_arguments \
|
||||||
|
':feature:__git_hf_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(track)
|
||||||
|
_arguments \
|
||||||
|
':feature:__git_hf_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(diff)
|
||||||
|
_arguments \
|
||||||
|
':branch:__git_branch_names'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(rebase)
|
||||||
|
_arguments \
|
||||||
|
-i'[Do an interactive rebase]' \
|
||||||
|
':branch:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(checkout)
|
||||||
|
_arguments \
|
||||||
|
':branch:__git_hf_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(pull)
|
||||||
|
_arguments \
|
||||||
|
':remote:__git_remotes'\
|
||||||
|
':branch:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_hf_version_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a versions
|
||||||
|
|
||||||
|
versions=(${${(f)"$(_call_program versions git hf release list 2> /dev/null | tr -d ' |*')"}})
|
||||||
|
__git_command_successful || return
|
||||||
|
|
||||||
|
_wanted versions expl 'version' compadd $versions
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_hf_feature_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a features
|
||||||
|
|
||||||
|
features=(${${(f)"$(_call_program features git hf 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_hf_hotfix_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a hotfixes
|
||||||
|
|
||||||
|
hotfixes=(${${(f)"$(_call_program hotfixes git hf 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'
|
||||||
18
plugins/git-remote-branch/git-remote-branch.plugin.zsh
Normal file
18
plugins/git-remote-branch/git-remote-branch.plugin.zsh
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
_git_remote_branch() {
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null)
|
||||||
|
if [[ -n $ref ]]; then
|
||||||
|
if (( CURRENT == 2 )); then
|
||||||
|
# first arg: operation
|
||||||
|
compadd create publish rename delete track
|
||||||
|
elif (( CURRENT == 3 )); then
|
||||||
|
# second arg: remote branch name
|
||||||
|
compadd `git branch -r | grep -v HEAD | sed "s/.*\///" | sed "s/ //g"`
|
||||||
|
elif (( CURRENT == 4 )); then
|
||||||
|
# third arg: remote name
|
||||||
|
compadd `git remote`
|
||||||
|
fi
|
||||||
|
else;
|
||||||
|
_files
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
compdef _git_remote_branch grb
|
||||||
|
|
@ -5,10 +5,11 @@ alias gst='git status'
|
||||||
compdef _git gst=git-status
|
compdef _git gst=git-status
|
||||||
alias gl='git pull'
|
alias gl='git pull'
|
||||||
compdef _git gl=git-pull
|
compdef _git gl=git-pull
|
||||||
alias gup='git fetch && git rebase'
|
alias gup='git pull --rebase'
|
||||||
compdef _git gup=git-fetch
|
compdef _git gup=git-fetch
|
||||||
alias gp='git push'
|
alias gp='git push'
|
||||||
compdef _git gp=git-push
|
compdef _git gp=git-push
|
||||||
|
alias gd='git diff'
|
||||||
gdv() { git diff -w "$@" | view - }
|
gdv() { git diff -w "$@" | view - }
|
||||||
compdef _git gdv=git-diff
|
compdef _git gdv=git-diff
|
||||||
alias gc='git commit -v'
|
alias gc='git commit -v'
|
||||||
|
|
@ -18,18 +19,33 @@ compdef _git gca=git-commit
|
||||||
alias gco='git checkout'
|
alias gco='git checkout'
|
||||||
compdef _git gco=git-checkout
|
compdef _git gco=git-checkout
|
||||||
alias gcm='git checkout master'
|
alias gcm='git checkout master'
|
||||||
|
alias gr='git remote'
|
||||||
|
compdef _git gr=git-remote
|
||||||
|
alias grv='git remote -v'
|
||||||
|
compdef _git grv=git-remote
|
||||||
|
alias grmv='git remote rename'
|
||||||
|
compdef _git grmv=git-remote
|
||||||
|
alias grrm='git remote remove'
|
||||||
|
compdef _git grrm=git-remote
|
||||||
|
alias grset='git remote set-url'
|
||||||
|
compdef _git grset=git-remote
|
||||||
|
alias grup='git remote update'
|
||||||
|
compdef _git grset=git-remote
|
||||||
alias gb='git branch'
|
alias gb='git branch'
|
||||||
compdef _git gb=git-branch
|
compdef _git gb=git-branch
|
||||||
alias gba='git branch -a'
|
alias gba='git branch -a'
|
||||||
compdef _git gba=git-branch
|
compdef _git gba=git-branch
|
||||||
alias gcount='git shortlog -sn'
|
alias gcount='git shortlog -sn'
|
||||||
compdef gcount=git
|
compdef gcount=git
|
||||||
|
alias gcl='git config --list'
|
||||||
alias gcp='git cherry-pick'
|
alias gcp='git cherry-pick'
|
||||||
compdef _git gcp=git-cherry-pick
|
compdef _git gcp=git-cherry-pick
|
||||||
alias glg='git log --stat --max-count=5'
|
alias glg='git log --stat --max-count=5'
|
||||||
compdef _git glg=git-log
|
compdef _git glg=git-log
|
||||||
alias glgg='git log --graph --max-count=5'
|
alias glgg='git log --graph --max-count=5'
|
||||||
compdef _git glgg=git-log
|
compdef _git glgg=git-log
|
||||||
|
alias glgga='git log --graph --decorate --all'
|
||||||
|
compdef _git glgga=git-log
|
||||||
alias gss='git status -s'
|
alias gss='git status -s'
|
||||||
compdef _git gss=git-status
|
compdef _git gss=git-status
|
||||||
alias ga='git add'
|
alias ga='git add'
|
||||||
|
|
@ -38,6 +54,9 @@ alias gm='git merge'
|
||||||
compdef _git gm=git-merge
|
compdef _git gm=git-merge
|
||||||
alias grh='git reset HEAD'
|
alias grh='git reset HEAD'
|
||||||
alias grhh='git reset HEAD --hard'
|
alias grhh='git reset HEAD --hard'
|
||||||
|
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
|
||||||
|
alias gf='git ls-files | grep'
|
||||||
|
alias gpoat='git push origin --all && git push origin --tags'
|
||||||
|
|
||||||
# Will cd into the top of the current repository
|
# Will cd into the top of the current repository
|
||||||
# or submodule.
|
# or submodule.
|
||||||
|
|
@ -54,13 +73,14 @@ alias gsd='git svn dcommit'
|
||||||
# Usage example: git pull origin $(current_branch)
|
# Usage example: git pull origin $(current_branch)
|
||||||
#
|
#
|
||||||
function current_branch() {
|
function current_branch() {
|
||||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
|
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
|
||||||
echo ${ref#refs/heads/}
|
echo ${ref#refs/heads/}
|
||||||
}
|
}
|
||||||
|
|
||||||
function current_repository() {
|
function current_repository() {
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
|
||||||
echo $(git remote -v | cut -d':' -f 2)
|
echo $(git remote -v | cut -d':' -f 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ exist_gh() { # [DIRECTORY]
|
||||||
cd "$1"
|
cd "$1"
|
||||||
name=$( git config user.name )
|
name=$( git config user.name )
|
||||||
ghuser=$( git config github.user )
|
ghuser=$( git config github.user )
|
||||||
|
repo=$1
|
||||||
|
|
||||||
git remote add origin git@github.com:${ghuser}/${repo}.git
|
git remote add origin git@github.com:${ghuser}/${repo}.git
|
||||||
git push -u origin master
|
git push -u origin master
|
||||||
|
|
|
||||||
|
|
@ -154,5 +154,6 @@ case "$words[1]" in
|
||||||
_arguments \
|
_arguments \
|
||||||
$_command_args \
|
$_command_args \
|
||||||
'(--app)--app[the app name]' \
|
'(--app)--app[the app name]' \
|
||||||
|
'(--remote)--remote[the remote name]' \
|
||||||
&& return 0
|
&& return 0
|
||||||
|
|
||||||
|
|
|
||||||
8
plugins/history/history.plugin.zsh
Normal file
8
plugins/history/history.plugin.zsh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
alias h='history'
|
||||||
|
|
||||||
|
function hs
|
||||||
|
{
|
||||||
|
history | grep $*
|
||||||
|
}
|
||||||
|
|
||||||
|
alias hsi='hs -i'
|
||||||
|
|
@ -1,20 +1,36 @@
|
||||||
# To use: add a .jira-url file in the base of your project
|
# To use: add a .jira-url file in the base of your project
|
||||||
|
# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
|
||||||
|
# .jira-url in the current directory takes precedence
|
||||||
|
#
|
||||||
|
# If you use Rapid Board, set:
|
||||||
|
#JIRA_RAPID_BOARD="yes"
|
||||||
|
# in you .zshrc
|
||||||
|
#
|
||||||
# Setup: cd to/my/project
|
# Setup: cd to/my/project
|
||||||
# echo "https://name.jira.com" >> .jira-url
|
# echo "https://name.jira.com" >> .jira-url
|
||||||
# Usage: jira # opens a new issue
|
# Usage: jira # opens a new issue
|
||||||
# jira ABC-123 # Opens an existing issue
|
# jira ABC-123 # Opens an existing issue
|
||||||
open_jira_issue () {
|
open_jira_issue () {
|
||||||
if [ ! -f .jira-url ]; then
|
if [ -f .jira-url ]; then
|
||||||
echo "There is no .jira-url file in the current directory..."
|
jira_url=$(cat .jira-url)
|
||||||
return 0;
|
elif [ -f ~/.jira-url ]; then
|
||||||
|
jira_url=$(cat ~/.jira-url)
|
||||||
|
elif [[ "x$JIRA_URL" != "x" ]]; then
|
||||||
|
jira_url=$JIRA_URL
|
||||||
else
|
else
|
||||||
jira_url=$(cat .jira-url);
|
echo "JIRA url is not specified anywhere."
|
||||||
if [ -z "$1" ]; then
|
return 0
|
||||||
echo "Opening new issue";
|
fi
|
||||||
`open $jira_url/secure/CreateIssue!default.jspa`;
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Opening new issue"
|
||||||
|
`open $jira_url/secure/CreateIssue!default.jspa`
|
||||||
|
else
|
||||||
|
echo "Opening issue #$1"
|
||||||
|
if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then
|
||||||
|
`open $jira_url/issues/$1`
|
||||||
else
|
else
|
||||||
echo "Opening issue #$1";
|
`open $jira_url/browse/$1`
|
||||||
`open $jira_url/issues/$1`;
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,11 @@ _chef_environments_remote() {
|
||||||
|
|
||||||
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
|
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
|
||||||
_chef_cookbooks_local() {
|
_chef_cookbooks_local() {
|
||||||
(for i in $( grep cookbook_path $HOME/.chef/knife.rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done)
|
local knife_rb="$HOME/.chef/knife.rb"
|
||||||
|
if [ -f ./.chef/knife.rb ]; then
|
||||||
|
knife_rb="./.chef/knife.rb"
|
||||||
|
fi
|
||||||
|
(for i in $( grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done)
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function extracts the available cookbook versions on the chef server
|
# This function extracts the available cookbook versions on the chef server
|
||||||
|
|
|
||||||
24
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
24
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
# Keeps track of the last used working directory and automatically jumps
|
||||||
|
# into it for new shells.
|
||||||
|
|
||||||
|
# Flag indicating if we've previously jumped to last directory.
|
||||||
|
typeset -g ZSH_LAST_WORKING_DIRECTORY
|
||||||
|
mkdir -p "$ZSH/cache"
|
||||||
|
local cache_file="$ZSH/cache/last-working-dir"
|
||||||
|
|
||||||
|
# Updates the last directory once directory is changed.
|
||||||
|
function chpwd() {
|
||||||
|
echo "$PWD" > "$cache_file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Changes directory to the last working directory.
|
||||||
|
function lwd() {
|
||||||
|
[[ ! -r "$cache_file" ]] || cd `cat "$cache_file"`
|
||||||
|
}
|
||||||
|
|
||||||
|
# Automatically jump to last working directory unless this isn't the first time
|
||||||
|
# this plugin has been loaded.
|
||||||
|
if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then
|
||||||
|
lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true
|
||||||
|
fi
|
||||||
|
|
@ -5,6 +5,7 @@ alias wtf='dmesg'
|
||||||
alias onoz='cat /var/log/errors.log'
|
alias onoz='cat /var/log/errors.log'
|
||||||
alias rtfm='man'
|
alias rtfm='man'
|
||||||
|
|
||||||
|
alias :3='echo'
|
||||||
alias visible='echo'
|
alias visible='echo'
|
||||||
alias invisible='cat'
|
alias invisible='cat'
|
||||||
alias moar='more'
|
alias moar='more'
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,9 @@ alias hgp='hg push'
|
||||||
alias hgs='hg status'
|
alias hgs='hg status'
|
||||||
# this is the 'git commit --amend' equivalent
|
# this is the 'git commit --amend' equivalent
|
||||||
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
|
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
|
||||||
|
|
||||||
|
function hg_current_branch() {
|
||||||
|
if [ -d .hg ]; then
|
||||||
|
echo hg:$(hg branch)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Open the node api for your current version to the optional section.
|
# Open the node api for your current version to the optional section.
|
||||||
# TODO: Make the section part easier to use.
|
# TODO: Make the section part easier to use.
|
||||||
function node-docs {
|
function node-docs {
|
||||||
open "http://nodejs.org/docs/$(node --version)/api/all.html#$1"
|
open "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,9 @@
|
||||||
# FILE: osx.plugin.zsh
|
# FILE: osx.plugin.zsh
|
||||||
# DESCRIPTION: oh-my-zsh plugin file.
|
# DESCRIPTION: oh-my-zsh plugin file.
|
||||||
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
|
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
|
||||||
# VERSION: 1.0.1
|
# VERSION: 1.1.0
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
function tab() {
|
function tab() {
|
||||||
local command="cd \\\"$PWD\\\""
|
local command="cd \\\"$PWD\\\""
|
||||||
(( $# > 0 )) && command="${command}; $*"
|
(( $# > 0 )) && command="${command}; $*"
|
||||||
|
|
@ -35,7 +34,7 @@ EOF
|
||||||
launch session "Default Session"
|
launch session "Default Session"
|
||||||
set current_session to current session
|
set current_session to current session
|
||||||
tell current_session
|
tell current_session
|
||||||
write text "${command}"
|
write text "${command}; clear;"
|
||||||
end tell
|
end tell
|
||||||
end tell
|
end tell
|
||||||
end tell
|
end tell
|
||||||
|
|
@ -43,6 +42,64 @@ EOF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function vsplit_tab() {
|
||||||
|
local command="cd \\\"$PWD\\\""
|
||||||
|
(( $# > 0 )) && command="${command}; $*"
|
||||||
|
|
||||||
|
the_app=$(
|
||||||
|
osascript 2>/dev/null <<EOF
|
||||||
|
tell application "System Events"
|
||||||
|
name of first item of (every process whose frontmost is true)
|
||||||
|
end tell
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ "$the_app" == 'iTerm' ]] && {
|
||||||
|
osascript 2>/dev/null <<EOF
|
||||||
|
tell application "iTerm" to activate
|
||||||
|
|
||||||
|
tell application "System Events"
|
||||||
|
tell process "iTerm"
|
||||||
|
tell menu item "Split Vertically With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
|
||||||
|
click
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
keystroke "${command}; clear;"
|
||||||
|
keystroke return
|
||||||
|
end tell
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function split_tab() {
|
||||||
|
local command="cd \\\"$PWD\\\""
|
||||||
|
(( $# > 0 )) && command="${command}; $*"
|
||||||
|
|
||||||
|
the_app=$(
|
||||||
|
osascript 2>/dev/null <<EOF
|
||||||
|
tell application "System Events"
|
||||||
|
name of first item of (every process whose frontmost is true)
|
||||||
|
end tell
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ "$the_app" == 'iTerm' ]] && {
|
||||||
|
osascript 2>/dev/null <<EOF
|
||||||
|
tell application "iTerm" to activate
|
||||||
|
|
||||||
|
tell application "System Events"
|
||||||
|
tell process "iTerm"
|
||||||
|
tell menu item "Split Horizontally With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
|
||||||
|
click
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
keystroke "${command}; clear;"
|
||||||
|
keystroke return
|
||||||
|
end tell
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function pfd() {
|
function pfd() {
|
||||||
osascript 2>/dev/null <<EOF
|
osascript 2>/dev/null <<EOF
|
||||||
tell application "Finder"
|
tell application "Finder"
|
||||||
|
|
|
||||||
119
plugins/pass/_pass
Normal file
119
plugins/pass/_pass
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
#compdef pass
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# Copyright (C) 2012:
|
||||||
|
# Johan Venant <jvenant@invicem.pro>
|
||||||
|
# Brian Mattern <rephorm@rephorm.com>
|
||||||
|
# Jason A. Donenfeld <Jason@zx2c4.com>.
|
||||||
|
# Santiago Borrazás <sanbor@gmail.com>
|
||||||
|
# All Rights Reserved.
|
||||||
|
# This file is licensed under the GPLv2+. Please see COPYING for more information.
|
||||||
|
|
||||||
|
|
||||||
|
_pass () {
|
||||||
|
local cmd
|
||||||
|
if (( CURRENT > 2)); then
|
||||||
|
cmd=${words[2]}
|
||||||
|
# Set the context for the subcommand.
|
||||||
|
curcontext="${curcontext%:*:*}:pass-$cmd"
|
||||||
|
# Narrow the range of words we are looking at to exclude `pass'
|
||||||
|
(( CURRENT-- ))
|
||||||
|
shift words
|
||||||
|
# Run the completion for the subcommand
|
||||||
|
case "${cmd}" in
|
||||||
|
init)
|
||||||
|
_arguments : \
|
||||||
|
"-r[re-encrypt existing passwords]" \
|
||||||
|
"--reencrypt[re-encrypt existing passwords]"
|
||||||
|
_pass_complete_keys
|
||||||
|
;;
|
||||||
|
ls|list|edit)
|
||||||
|
_pass_complete_entries_with_subdirs
|
||||||
|
;;
|
||||||
|
insert)
|
||||||
|
_arguments : \
|
||||||
|
"-e[echo password to console]" \
|
||||||
|
"--echo[echo password to console]" \
|
||||||
|
"-m[multiline]" \
|
||||||
|
"--multiline[multiline]"
|
||||||
|
_pass_complete_entries_with_subdirs
|
||||||
|
;;
|
||||||
|
generate)
|
||||||
|
_arguments : \
|
||||||
|
"-n[don't include symbols in password]" \
|
||||||
|
"--no-symbols[don't include symbols in password]" \
|
||||||
|
"-c[copy password to the clipboard]" \
|
||||||
|
"--clip[copy password to the clipboard]"
|
||||||
|
_pass_complete_entries_with_subdirs
|
||||||
|
;;
|
||||||
|
rm)
|
||||||
|
_arguments : \
|
||||||
|
"-f[force deletion]" \
|
||||||
|
"--force[force deletion]" \
|
||||||
|
"-r[recursively delete]" \
|
||||||
|
"--recursive[recursively delete]"
|
||||||
|
_pass_complete_entries_with_subdirs
|
||||||
|
;;
|
||||||
|
git)
|
||||||
|
local -a subcommands
|
||||||
|
subcommands=(
|
||||||
|
"init:Initialize git repository"
|
||||||
|
"push:Push to remote repository"
|
||||||
|
"pull:Pull from remote repository"
|
||||||
|
"config:Show git config"
|
||||||
|
"log:Show git log"
|
||||||
|
"reflog:Show git reflog"
|
||||||
|
)
|
||||||
|
_describe -t commands 'pass git' subcommands
|
||||||
|
;;
|
||||||
|
show|*)
|
||||||
|
_pass_cmd_show
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
local -a subcommands
|
||||||
|
subcommands=(
|
||||||
|
"init:Initialize new password storage"
|
||||||
|
"ls:List passwords"
|
||||||
|
"show:Decrypt and print a password"
|
||||||
|
"insert:Insert a new password"
|
||||||
|
"generate:Generate a new password using pwgen"
|
||||||
|
"edit:Edit a password with \$EDITOR"
|
||||||
|
"rm:Remove the password"
|
||||||
|
"git:Call git on the password store"
|
||||||
|
"version:Output version information"
|
||||||
|
"help:Output help message"
|
||||||
|
)
|
||||||
|
_describe -t commands 'pass' subcommands
|
||||||
|
_arguments : \
|
||||||
|
"--version[Output version information]" \
|
||||||
|
"--help[Output help message]"
|
||||||
|
_pass_cmd_show
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_cmd_show () {
|
||||||
|
_arguments : \
|
||||||
|
"-c[put it on the clipboard]" \
|
||||||
|
"--clip[put it on the clipboard]"
|
||||||
|
_pass_complete_entries
|
||||||
|
}
|
||||||
|
_pass_complete_entries_helper () {
|
||||||
|
local IFS=$'\n'
|
||||||
|
local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
|
||||||
|
_values -C 'passwords' $(find "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort)
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_complete_entries_with_subdirs () {
|
||||||
|
_pass_complete_entries_helper
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_complete_entries () {
|
||||||
|
_pass_complete_entries_helper -type f
|
||||||
|
}
|
||||||
|
|
||||||
|
_pass_complete_keys () {
|
||||||
|
local IFS=$'\n'
|
||||||
|
# Extract names and email addresses from gpg --list-keys
|
||||||
|
_values 'gpg keys' $(gpg2 --list-secret-keys --with-colons | cut -d : -f 10 | sort -u | sed '/^$/d')
|
||||||
|
}
|
||||||
|
|
@ -65,12 +65,13 @@
|
||||||
function per-directory-history-toggle-history() {
|
function per-directory-history-toggle-history() {
|
||||||
if [[ $_per_directory_history_is_global == true ]]; then
|
if [[ $_per_directory_history_is_global == true ]]; then
|
||||||
_per-directory-history-set-directory-history
|
_per-directory-history-set-directory-history
|
||||||
echo "using local history\n"
|
print "\nusing local history\n"
|
||||||
else
|
else
|
||||||
_per-directory-history-set-global-history
|
_per-directory-history-set-global-history
|
||||||
echo "using global history\n"
|
print "\nusing global history\n"
|
||||||
fi
|
fi
|
||||||
zle reset-prompt
|
zle .push-line
|
||||||
|
zle .accept-line
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload per-directory-history-toggle-history
|
autoload per-directory-history-toggle-history
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# Find python file
|
# Find python file
|
||||||
alias pyfind='find . -name "*.py"'
|
alias pyfind='find . -name "*.py"'
|
||||||
|
|
||||||
# Remove python compiled byte-code
|
# Remove python compiled byte-code in either current directory or in a
|
||||||
alias pyclean='find . -type f -name "*.py[co]" -delete'
|
# list of specified directories
|
||||||
|
function pyclean() {
|
||||||
|
ZSH_PYCLEAN_PLACES=${*:-'.'}
|
||||||
|
find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete
|
||||||
|
}
|
||||||
|
|
||||||
# Grep among .py files
|
# Grep among .py files
|
||||||
alias pygrep='grep --include="*.py"'
|
alias pygrep='grep --include="*.py"'
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ alias sp='ruby script/plugin'
|
||||||
alias sr='ruby script/runner'
|
alias sr='ruby script/runner'
|
||||||
alias ssp='ruby script/spec'
|
alias ssp='ruby script/spec'
|
||||||
alias rdbm='rake db:migrate'
|
alias rdbm='rake db:migrate'
|
||||||
|
alias rdbtp='rake db:test:prepare'
|
||||||
|
alias migrate='rake db:migrate && rake db:test:prepare'
|
||||||
alias sc='ruby script/console'
|
alias sc='ruby script/console'
|
||||||
alias sd='ruby script/server --debugger'
|
alias sd='ruby script/server --debugger'
|
||||||
alias devlog='tail -f log/development.log'
|
alias devlog='tail -f log/development.log'
|
||||||
|
|
|
||||||
4
plugins/rsync/rsync.plugin.zsh
Normal file
4
plugins/rsync/rsync.plugin.zsh
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
alias rsync-copy="rsync -av --progress -h"
|
||||||
|
alias rsync-move="rsync -av --progress -h --remove-source-files"
|
||||||
|
alias rsync-update="rsync -avu --progress -h"
|
||||||
|
alias rsync-synchronize="rsync -avu --delete --progress -h"
|
||||||
147
plugins/rvm/_rvm
147
plugins/rvm/_rvm
|
|
@ -1,147 +0,0 @@
|
||||||
#compdef rvm
|
|
||||||
|
|
||||||
local curcontext="$curcontext" state line cmds ret=1
|
|
||||||
|
|
||||||
_arguments -C \
|
|
||||||
'(- 1 *)'{-v,--version}'[display version information]' \
|
|
||||||
'(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \
|
|
||||||
'(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \
|
|
||||||
'(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \
|
|
||||||
'(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \
|
|
||||||
'(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \
|
|
||||||
'-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \
|
|
||||||
'-e[Execute code from the command line]:code' \
|
|
||||||
'(-G)-G[root gem path to use]:path:_files' \
|
|
||||||
'(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \
|
|
||||||
'(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \
|
|
||||||
'(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \
|
|
||||||
'(-C|--configure)'{-C,--configure}'=[custom configure options]' \
|
|
||||||
'(--nice)--nice[process niceness (for slow computers, default 0)]:number' \
|
|
||||||
'(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \
|
|
||||||
'(--head)--head[with update, updates rvm to git head version]' \
|
|
||||||
'(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \
|
|
||||||
'(--default)--default[with ruby select, sets a default ruby for new shells]' \
|
|
||||||
'(--debug)--debug[Toggle debug mode on for very verbose output]' \
|
|
||||||
'(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \
|
|
||||||
'(--force)--force[Force install, removes old install & source before install]' \
|
|
||||||
'(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \
|
|
||||||
'(--latest)--latest[with gemset --dump skips version strings for latest gem]' \
|
|
||||||
'(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \
|
|
||||||
'(--docs)--docs[with install, attempt to generate ri after installation]' \
|
|
||||||
'(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \
|
|
||||||
'1: :->cmds' \
|
|
||||||
'*: :->args' && ret=0
|
|
||||||
|
|
||||||
case $state in
|
|
||||||
cmds)
|
|
||||||
cmds=(
|
|
||||||
"version:show the rvm version installed in rvm_path"
|
|
||||||
"use:setup current shell to use a specific ruby version"
|
|
||||||
"reload:reload rvm source itself (useful after changing rvm source)"
|
|
||||||
"implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)."
|
|
||||||
"update:upgrades rvm to the latest version."
|
|
||||||
"reset:remove current and stored default & system settings."
|
|
||||||
"info :show the *current* environment information for current ruby"
|
|
||||||
"current:print the *current* ruby version and the name of any gemset being used."
|
|
||||||
"debug:show info plus additional information for common issues"
|
|
||||||
"install:install one or many ruby versions"
|
|
||||||
"uninstall:uninstall one or many ruby versions, leaves their sources"
|
|
||||||
"remove:uninstall one or many ruby versions and remove their sources"
|
|
||||||
"migrate:Lets you migrate all gemsets from one ruby to another."
|
|
||||||
"upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically."
|
|
||||||
"wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like."
|
|
||||||
"cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm."
|
|
||||||
"repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)."
|
|
||||||
"snapshot:Lets your backup / restore an rvm installation in a lightweight manner."
|
|
||||||
"disk-usage:Tells you how much disk space rvm install is using."
|
|
||||||
"tools:Provides general information about the ruby environment, primarily useful when scripting rvm."
|
|
||||||
"docs:Tools to make installing ri and rdoc documentation easier."
|
|
||||||
"rvmrc:Tools related to managing rvmrc trust and loading."
|
|
||||||
"exec:runs an arbitrary command as a set operation."
|
|
||||||
"ruby:runs a named ruby file against specified and/or all rubies"
|
|
||||||
"gem:runs a gem command using selected ruby's 'gem'"
|
|
||||||
"rake:runs a rake task against specified and/or all rubies"
|
|
||||||
"tests:runs 'rake test' across selected ruby versions"
|
|
||||||
"specs:runs 'rake spec' across selected ruby versions"
|
|
||||||
"monitor:Monitor cwd for testing, run rake {spec,test} on changes."
|
|
||||||
"gemset:gemsets: http://rvm.beginrescueend.com/gemsets/"
|
|
||||||
"rubygems:Switches the installed version of rubygems for the current ruby."
|
|
||||||
"gemdir:display the path to the current gem directory (GEM_HOME)."
|
|
||||||
"srcdir:display the path to rvm source directory (may be yanked)"
|
|
||||||
"fetch:Performs an archive / src fetch only of the selected ruby."
|
|
||||||
"list:show currently installed rubies, interactive output."
|
|
||||||
"package:Install a dependency package {readline,iconv,zlib,openssl}"
|
|
||||||
"notes:Display notes, with operating system specifics."
|
|
||||||
"export:Temporarily set an environment variable in the current shell."
|
|
||||||
"unexport:Undo changes made to the environment by 'rvm export'."
|
|
||||||
)
|
|
||||||
_describe -t commands 'rvm command' cmds && ret=0
|
|
||||||
;;
|
|
||||||
args)
|
|
||||||
case $line[1] in
|
|
||||||
(use|uninstall|remove|list)
|
|
||||||
_values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0
|
|
||||||
;;
|
|
||||||
(install|fetch)
|
|
||||||
_values -S , 'rubies' $(rvm list known_strings) && ret=0
|
|
||||||
;;
|
|
||||||
gemset)
|
|
||||||
if (( CURRENT == 3 )); then
|
|
||||||
_values 'gemset_commands' \
|
|
||||||
'import' \
|
|
||||||
'export' \
|
|
||||||
'create' \
|
|
||||||
'copy' \
|
|
||||||
'rename' \
|
|
||||||
'empty' \
|
|
||||||
'delete' \
|
|
||||||
'name' \
|
|
||||||
'dir' \
|
|
||||||
'list' \
|
|
||||||
'list_all' \
|
|
||||||
'gemdir' \
|
|
||||||
'install' \
|
|
||||||
'pristine' \
|
|
||||||
'clear' \
|
|
||||||
'use' \
|
|
||||||
'update' \
|
|
||||||
'unpack' \
|
|
||||||
'globalcache'
|
|
||||||
else
|
|
||||||
_values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null)
|
|
||||||
fi
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
package)
|
|
||||||
if (( CURRENT == 3 )); then
|
|
||||||
_values 'package_commands' \
|
|
||||||
'install' \
|
|
||||||
'uninstall'
|
|
||||||
else
|
|
||||||
_values 'packages' \
|
|
||||||
'readline' \
|
|
||||||
'iconv' \
|
|
||||||
'curl' \
|
|
||||||
'openssl' \
|
|
||||||
'zlib' \
|
|
||||||
'autoconf' \
|
|
||||||
'ncurses' \
|
|
||||||
'pkgconfig' \
|
|
||||||
'gettext' \
|
|
||||||
'glib' \
|
|
||||||
'mono' \
|
|
||||||
'llvm' \
|
|
||||||
'libxml2' \
|
|
||||||
'libxslt' \
|
|
||||||
'libyaml'
|
|
||||||
fi
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
(( ret )) && _message 'no more arguments'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return ret
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
fpath=($rvm_path/scripts/zsh/Completion $fpath)
|
||||||
|
|
||||||
alias rubies='rvm list rubies'
|
alias rubies='rvm list rubies'
|
||||||
alias gemsets='rvm gemset list'
|
alias gemsets='rvm gemset list'
|
||||||
|
|
||||||
local ruby18='ruby-1.8.7-p334'
|
local ruby18='ruby-1.8.7-p334'
|
||||||
local ruby19='ruby-1.9.2-p180'
|
local ruby19='ruby-1.9.3-p194'
|
||||||
|
|
||||||
function rb18 {
|
function rb18 {
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
|
|
@ -42,3 +44,8 @@ function gems {
|
||||||
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
|
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
|
||||||
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
|
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _rvm_completion {
|
||||||
|
source $rvm_path"/scripts/zsh/Completion/_rvm"
|
||||||
|
}
|
||||||
|
compdef _rvm_completion rvm
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
||||||
# of the tab window should be.
|
# of the tab window should be.
|
||||||
if [[ $TERM == "screen" ]]; then
|
if [[ "$TERM" == screen* ]]; then
|
||||||
if [[ $_GET_PATH == '' ]]; then
|
if [[ $_GET_PATH == '' ]]; then
|
||||||
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,21 @@
|
||||||
# Sublime Text 2 Aliases
|
# Sublime Text 2 Aliases
|
||||||
#unamestr = 'uname'
|
#unamestr = 'uname'
|
||||||
|
|
||||||
|
local _sublime_darwin_subl=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl
|
||||||
|
|
||||||
if [[ $('uname') == 'Linux' ]]; then
|
if [[ $('uname') == 'Linux' ]]; then
|
||||||
if [ -f '/usr/bin/sublime_text' ]; then
|
if [ -f '/usr/bin/sublime_text' ]; then
|
||||||
alias st='/usr/bin/sublime_text&'
|
st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
|
||||||
else
|
else
|
||||||
alias st='/usr/bin/sublime-text&'
|
st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
|
||||||
fi
|
fi
|
||||||
|
alias st=st_run
|
||||||
elif [[ $('uname') == 'Darwin' ]]; then
|
elif [[ $('uname') == 'Darwin' ]]; then
|
||||||
alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl'
|
# Check if Sublime is installed in user's home application directory
|
||||||
|
if [[ -a $HOME/${_sublime_darwin_subl} ]]; then
|
||||||
|
alias st='$HOME/${_sublime_darwin_subl}'
|
||||||
|
else
|
||||||
|
alias st='${_sublime_darwin_subl}'
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
alias stt='st .'
|
alias stt='st .'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,15 @@
|
||||||
|
|
||||||
function svn_prompt_info {
|
function svn_prompt_info {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
|
if [ "x$SVN_SHOW_BRANCH" = "xtrue" ]; then
|
||||||
|
unset SVN_SHOW_BRANCH
|
||||||
|
_DISPLAY=$(svn_get_branch_name)
|
||||||
|
else
|
||||||
|
_DISPLAY=$(svn_get_repo_name)
|
||||||
|
fi
|
||||||
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
|
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"
|
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
|
||||||
|
unset _DISPLAY
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15,11 +23,21 @@ function in_svn() {
|
||||||
function svn_get_repo_name {
|
function svn_get_repo_name {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
|
svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
|
||||||
|
|
||||||
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
|
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function svn_get_branch_name {
|
||||||
|
_DISPLAY=$(svn info 2> /dev/null | awk -F/ '/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }')
|
||||||
|
if [ "x$_DISPLAY" = "x" ]; then
|
||||||
|
svn_get_repo_name
|
||||||
|
else
|
||||||
|
echo $_DISPLAY
|
||||||
|
fi
|
||||||
|
unset _DISPLAY
|
||||||
|
}
|
||||||
|
|
||||||
function svn_get_rev_nr {
|
function svn_get_rev_nr {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
svn info 2> /dev/null | sed -n s/Revision:\ //p
|
svn info 2> /dev/null | sed -n s/Revision:\ //p
|
||||||
|
|
@ -29,9 +47,11 @@ function svn_get_rev_nr {
|
||||||
function svn_dirty_choose {
|
function svn_dirty_choose {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'
|
svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'
|
||||||
if [ $pipestatus[-1] -ne 0 ]; then
|
if [ $pipestatus[-1] -eq 0 ]; then
|
||||||
|
# Grep exits with 0 when "One or more lines were selected", return "dirty".
|
||||||
echo $1
|
echo $1
|
||||||
else
|
else
|
||||||
|
# Otherwise, no lines were found, or an error occurred. Return clean.
|
||||||
echo $2
|
echo $2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
13
plugins/symfony/symfony.plugin.zsh
Normal file
13
plugins/symfony/symfony.plugin.zsh
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# symfony basic command completion
|
||||||
|
|
||||||
|
_symfony_get_command_list () {
|
||||||
|
./symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }'
|
||||||
|
}
|
||||||
|
|
||||||
|
_symfony () {
|
||||||
|
if [ -f symfony ]; then
|
||||||
|
compadd `_symfony_get_command_list`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _symfony symfony
|
||||||
|
|
@ -11,7 +11,9 @@ _symfony2 () {
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef _symfony2 app/console
|
compdef _symfony2 app/console
|
||||||
|
compdef _symfony2 sf
|
||||||
|
|
||||||
#Alias
|
#Alias
|
||||||
alias sf2='php app/console'
|
alias sf2='php app/console'
|
||||||
alias sf2clear='php app/console cache:clear'
|
alias sf2clear='php app/console cache:clear'
|
||||||
|
|
||||||
|
|
|
||||||
11
plugins/systemd/systemd.plugin.zsh
Normal file
11
plugins/systemd/systemd.plugin.zsh
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
user_commands=(
|
||||||
|
list-units is-active status show help list-unit-files
|
||||||
|
is-enabled list-jobs show-environment)
|
||||||
|
|
||||||
|
sudo_commands=(
|
||||||
|
start stop reload restart try-restart isolate kill
|
||||||
|
reset-failed enable disable reenable preset mask unmask
|
||||||
|
link load cancel set-environment unset-environment)
|
||||||
|
|
||||||
|
for c in $user_commands; do; alias sc-$c="systemctl $c"; done
|
||||||
|
for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
|
||||||
|
|
@ -1,11 +1,39 @@
|
||||||
# Set Apple Terminal.app resume directory
|
# Set Apple Terminal.app resume directory
|
||||||
# based on this answer: http://superuser.com/a/315029
|
# based on this answer: http://superuser.com/a/315029
|
||||||
|
# 2012-10-26: (javageek) Changed code using the updated answer
|
||||||
|
|
||||||
function chpwd {
|
# Tell the terminal about the working directory whenever it changes.
|
||||||
local SEARCH=' '
|
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
|
||||||
local REPLACE='%20'
|
update_terminal_cwd() {
|
||||||
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
|
# Identify the directory using a "file:" scheme URL, including
|
||||||
printf '\e]7;%s\a' "$PWD_URL"
|
# the host name to disambiguate local vs. remote paths.
|
||||||
}
|
|
||||||
|
|
||||||
chpwd
|
# Percent-encode the pathname.
|
||||||
|
local URL_PATH=''
|
||||||
|
{
|
||||||
|
# Use LANG=C to process text byte-by-byte.
|
||||||
|
local i ch hexch LANG=C
|
||||||
|
for ((i = 1; i <= ${#PWD}; ++i)); do
|
||||||
|
ch="$PWD[i]"
|
||||||
|
if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then
|
||||||
|
URL_PATH+="$ch"
|
||||||
|
else
|
||||||
|
hexch=$(printf "%02X" "'$ch")
|
||||||
|
URL_PATH+="%$hexch"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
local PWD_URL="file://$HOST$URL_PATH"
|
||||||
|
#echo "$PWD_URL" # testing
|
||||||
|
printf '\e]7;%s\a' "$PWD_URL"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Register the function so it is called whenever the working
|
||||||
|
# directory changes.
|
||||||
|
autoload add-zsh-hook
|
||||||
|
add-zsh-hook chpwd update_terminal_cwd
|
||||||
|
|
||||||
|
# Tell the terminal about the initial directory.
|
||||||
|
update_terminal_cwd
|
||||||
|
fi
|
||||||
|
|
|
||||||
3
plugins/themes/_theme
Normal file
3
plugins/themes/_theme
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#compdef theme
|
||||||
|
|
||||||
|
_arguments "1: :($(lstheme | tr "\n" " "))"
|
||||||
24
plugins/themes/themes.plugin.zsh
Normal file
24
plugins/themes/themes.plugin.zsh
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
function theme
|
||||||
|
{
|
||||||
|
if [ "$1" = "random" ]; then
|
||||||
|
themes=($ZSH/themes/*zsh-theme)
|
||||||
|
N=${#themes[@]}
|
||||||
|
((N=(RANDOM%N)+1))
|
||||||
|
RANDOM_THEME=${themes[$N]}
|
||||||
|
source "$RANDOM_THEME"
|
||||||
|
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
|
||||||
|
else
|
||||||
|
if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ]
|
||||||
|
then
|
||||||
|
source "$ZSH_CUSTOM/$1.zsh-theme"
|
||||||
|
else
|
||||||
|
source "$ZSH/themes/$1.zsh-theme"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function lstheme
|
||||||
|
{
|
||||||
|
cd $ZSH/themes
|
||||||
|
ls *zsh-theme | sed 's,\.zsh-theme$,,'
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,33 @@
|
||||||
# Taken from:
|
# Taken from:
|
||||||
# http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
|
# http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
|
||||||
|
|
||||||
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
|
if [[ $(whence $URLTOOLS_METHOD) = "" ]]; then
|
||||||
|
URLTOOLS_METHOD=""
|
||||||
|
fi
|
||||||
|
|
||||||
alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
|
if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xnode" ) ]]; then
|
||||||
|
alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"'
|
||||||
|
alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
|
||||||
|
elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
|
||||||
|
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
|
||||||
|
alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
|
||||||
|
elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then
|
||||||
|
alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"'
|
||||||
|
alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"'
|
||||||
|
elif [[ $(whence php) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xphp" ) ]]; then
|
||||||
|
alias urlencode='php -r "echo rawurlencode(\$argv[1]); echo \"\n\";"'
|
||||||
|
alias urldecode='php -r "echo rawurldecode(\$argv[1]); echo \"\\n\";"'
|
||||||
|
elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xperl" ) ]]; then
|
||||||
|
if perl -MURI::Encode -e 1&> /dev/null; then
|
||||||
|
alias urlencode='perl -MURI::Encode -ep "uri_encode($ARGV[0]);"'
|
||||||
|
alias urldecode='perl -MURI::Encode -ep "uri_decode($ARGV[0]);"'
|
||||||
|
elif perl -MURI::Escape -e 1 &> /dev/null; then
|
||||||
|
alias urlencode='perl -MURI::Escape -ep "uri_escape($ARGV[0]);"'
|
||||||
|
alias urldecode='perl -MURI::Escape -ep "uri_unescape($ARGV[0]);"'
|
||||||
|
else
|
||||||
|
alias urlencode="perl -e '\$new=\$ARGV[0]; \$new =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg; print \"\$new\n\";'"
|
||||||
|
alias urldecode="perl -e '\$new=\$ARGV[0]; \$new =~ s/\%([A-Fa-f0-9]{2})/pack(\"C\", hex(\$1))/seg; print \"\$new\n\";'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset URLTOOLS_METHOD
|
||||||
|
|
@ -46,6 +46,11 @@ __box_list ()
|
||||||
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
|
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__vm_list ()
|
||||||
|
{
|
||||||
|
_wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2)
|
||||||
|
}
|
||||||
|
|
||||||
__vagrant-box ()
|
__vagrant-box ()
|
||||||
{
|
{
|
||||||
local curcontext="$curcontext" state line
|
local curcontext="$curcontext" state line
|
||||||
|
|
@ -99,6 +104,8 @@ case $state in
|
||||||
(box)
|
(box)
|
||||||
__vagrant-box
|
__vagrant-box
|
||||||
;;
|
;;
|
||||||
|
(up|provision|package|destroy|reload|ssh|halt|resume|status)
|
||||||
|
_arguments ':feature:__vm_list'
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,29 @@
|
||||||
function zle-line-init zle-keymap-select {
|
# Ensures that $terminfo values are valid and updates editor information when
|
||||||
|
# the keymap changes.
|
||||||
|
function zle-keymap-select zle-line-init zle-line-finish {
|
||||||
|
# The terminal must be in application mode when ZLE is active for $terminfo
|
||||||
|
# values to be valid.
|
||||||
|
if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then
|
||||||
|
case "$0" in
|
||||||
|
(zle-line-init)
|
||||||
|
# Enable terminal application mode.
|
||||||
|
echoti smkx
|
||||||
|
;;
|
||||||
|
(zle-line-finish)
|
||||||
|
# Disable terminal application mode.
|
||||||
|
echoti rmkx
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
zle reset-prompt
|
zle reset-prompt
|
||||||
|
zle -R
|
||||||
}
|
}
|
||||||
|
|
||||||
zle -N zle-line-init
|
zle -N zle-line-init
|
||||||
|
zle -N zle-line-finish
|
||||||
zle -N zle-keymap-select
|
zle -N zle-keymap-select
|
||||||
|
|
||||||
#changing mode clobbers the keybinds, so store the keybinds before and execute
|
|
||||||
#them after
|
|
||||||
binds=`bindkey -L`
|
|
||||||
bindkey -v
|
bindkey -v
|
||||||
for bind in ${(@f)binds}; do eval $bind; done
|
|
||||||
unset binds
|
|
||||||
|
|
||||||
# if mode indicator wasn't setup by theme, define default
|
# if mode indicator wasn't setup by theme, define default
|
||||||
if [[ "$MODE_INDICATOR" == "" ]]; then
|
if [[ "$MODE_INDICATOR" == "" ]]; then
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,40 @@
|
||||||
WRAPPER_FOUND=0
|
wrapsource=`which virtualenvwrapper_lazy.sh`
|
||||||
for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do
|
|
||||||
if [[ -e $wrapsource ]] ; then
|
|
||||||
WRAPPER_FOUND=1
|
|
||||||
source $wrapsource
|
|
||||||
|
|
||||||
if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
|
if [[ -f "$wrapsource" ]]; then
|
||||||
# Automatically activate Git projects' virtual environments based on the
|
source $wrapsource
|
||||||
# directory name of the project. Virtual environment name can be overridden
|
|
||||||
# by placing a .venv file in the project root with a virtualenv name in it
|
|
||||||
function workon_cwd {
|
|
||||||
# Check that this is a Git repo
|
|
||||||
PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null`
|
|
||||||
if (( $? == 0 )); then
|
|
||||||
# Check for virtualenv name override
|
|
||||||
ENV_NAME=`basename "$PROJECT_ROOT"`
|
|
||||||
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
|
|
||||||
ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
|
|
||||||
fi
|
|
||||||
# Activate the environment only if it is not already active
|
|
||||||
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
|
|
||||||
if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
|
|
||||||
workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
elif [ $CD_VIRTUAL_ENV ]; then
|
|
||||||
# We've just left the repo, deactivate the environment
|
|
||||||
# Note: this only happens if the virtualenv was activated automatically
|
|
||||||
deactivate && unset CD_VIRTUAL_ENV
|
|
||||||
fi
|
|
||||||
unset PROJECT_ROOT
|
|
||||||
}
|
|
||||||
|
|
||||||
# New cd function that does the virtualenv magic
|
if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
|
||||||
function cd {
|
# Automatically activate Git projects' virtual environments based on the
|
||||||
builtin cd "$@" && workon_cwd
|
# directory name of the project. Virtual environment name can be overridden
|
||||||
}
|
# by placing a .venv file in the project root with a virtualenv name in it
|
||||||
fi
|
function workon_cwd {
|
||||||
|
# Check that this is a Git repo
|
||||||
|
PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null`
|
||||||
|
if (( $? == 0 )); then
|
||||||
|
# Check for virtualenv name override
|
||||||
|
ENV_NAME=`basename "$PROJECT_ROOT"`
|
||||||
|
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
|
||||||
|
ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
|
||||||
|
fi
|
||||||
|
# Activate the environment only if it is not already active
|
||||||
|
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
|
||||||
|
if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
|
||||||
|
workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ $CD_VIRTUAL_ENV ]; then
|
||||||
|
# We've just left the repo, deactivate the environment
|
||||||
|
# Note: this only happens if the virtualenv was activated automatically
|
||||||
|
deactivate && unset CD_VIRTUAL_ENV
|
||||||
|
fi
|
||||||
|
unset PROJECT_ROOT
|
||||||
|
}
|
||||||
|
|
||||||
break
|
# New cd function that does the virtualenv magic
|
||||||
|
function cd {
|
||||||
|
builtin cd "$@" && workon_cwd
|
||||||
|
}
|
||||||
fi
|
fi
|
||||||
done
|
else
|
||||||
|
print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`."
|
||||||
if [ $WRAPPER_FOUND -eq 0 ] ; then
|
|
||||||
print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`."
|
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,11 @@ ZSH_THEME="robbyrussell"
|
||||||
# Set to this to use case-sensitive completion
|
# Set to this to use case-sensitive completion
|
||||||
# CASE_SENSITIVE="true"
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
# Comment this out to disable weekly auto-update checks
|
# Comment this out to disable bi-weekly auto-update checks
|
||||||
# DISABLE_AUTO_UPDATE="true"
|
# DISABLE_AUTO_UPDATE="true"
|
||||||
|
|
||||||
# Change this value to set how frequently ZSH updates¬
|
# Uncomment to change how many often would you like to wait before auto-updates occur? (in days)
|
||||||
export UPDATE_ZSH_DAYS=13
|
# export UPDATE_ZSH_DAYS=13
|
||||||
|
|
||||||
# Uncomment following line if you want to disable colors in ls
|
# Uncomment following line if you want to disable colors in ls
|
||||||
# DISABLE_LS_COLORS="true"
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
|
||||||
26
themes/adben.zsh-theme
Normal file
26
themes/adben.zsh-theme
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
local USER_HOST='%{$terminfo[bold]$fg[yellow]%}%n@%m%{$reset_color%}'
|
||||||
|
local RETURN_CODE="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
|
||||||
|
local GIT_BRANCH='%{$terminfo[bold]$fg[red]%}$(git_prompt_info)%{$reset_color%}'
|
||||||
|
local CURRENT_DIR='%{$terminfo[bold]$fg[green]%} %~%{$reset_color%}'
|
||||||
|
local RUBY_RVM='%{$fg[gray]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
|
||||||
|
local COMMAND_TIP='%{$terminfo[bold]$fg[blue]%}$(wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' | sed 's/^/║/g')%{$reset_color%}'
|
||||||
|
######### PROMPT #########
|
||||||
|
PROMPT="%{$terminfo[bold]$fg[blue]%}╔═ %{$reset_color%}${USER_HOST} ${CURRENT_DIR} ${RUBY_RVM} ${GIT_BRANCH}
|
||||||
|
${COMMAND_TIP}
|
||||||
|
%{$terminfo[bold]$fg[blue]%}╚═ %{$reset_color%}%B%{$terminfo[bold]$fg[white]%}$%b%{$reset_color%} "
|
||||||
|
RPS1='${RETURN_CODE}'
|
||||||
|
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}'
|
||||||
|
######### PROMPT #########
|
||||||
|
########## GIT ###########
|
||||||
|
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%}"
|
||||||
|
########## GIT ###########
|
||||||
|
|
@ -95,7 +95,7 @@ prompt_dir() {
|
||||||
prompt_status() {
|
prompt_status() {
|
||||||
local symbols
|
local symbols
|
||||||
symbols=()
|
symbols=()
|
||||||
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$RETVAL"
|
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘"
|
||||||
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
|
||||||
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
|
||||||
|
|
||||||
|
|
|
||||||
37
themes/candy-kingdom.zsh-theme
Normal file
37
themes/candy-kingdom.zsh-theme
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# neuralsanwich.zsh-theme
|
||||||
|
#
|
||||||
|
# Author: Sean Jones
|
||||||
|
# URL: http://www.neuralsandwich.com
|
||||||
|
# Repo:
|
||||||
|
# Direct link:
|
||||||
|
# Create:
|
||||||
|
# Modified:
|
||||||
|
|
||||||
|
if [ "x$OH_MY_ZSH_HG" = "x" ]; then
|
||||||
|
OH_MY_ZSH_HG="hg"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function hg_prompt_info {
|
||||||
|
$OH_MY_ZSH_HG prompt --angle-brackets "\
|
||||||
|
< on %{$fg[magenta]%}<branch>%{$reset_color%}>\
|
||||||
|
< at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\
|
||||||
|
%{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}<
|
||||||
|
patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
function box_name {
|
||||||
|
[ -f ~/.box-name ] && cat ~/.box-name || hostname -s
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}$(box_name)%{$reset_color%}:%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(hg_prompt_info)$(git_prompt_info)
|
||||||
|
%(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )$ '
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[magenta]%}branch: "
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[orange]%}!"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})"
|
||||||
|
|
||||||
|
local return_status="%{$fg[red]%}%(?..✘)%{$reset_color%}"
|
||||||
|
RPROMPT='${return_status}$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}'
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
PROMPT='%{$fg_bold[cyan]%}☁ %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
|
if [[ -z $ZSH_THEME_CLOUD_PREFIX ]]; then
|
||||||
|
ZSH_THEME_CLOUD_PREFIX='☁'
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROMPT='%{$fg_bold[cyan]%}$ZSH_THEME_CLOUD_PREFIX %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[%{$fg[cyan]%}"
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[%{$fg[cyan]%}"
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ function virtualenv_info {
|
||||||
}
|
}
|
||||||
|
|
||||||
function prompt_char {
|
function prompt_char {
|
||||||
git branch >/dev/null 2>/dev/null && echo '±' && return
|
git branch >/dev/null 2>/dev/null && echo '⠠⠵' && return
|
||||||
echo '○'
|
echo '○'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
# ZSH Theme emulating the Fish shell's default prompt.
|
# ZSH Theme emulating the Fish shell's default prompt.
|
||||||
|
|
||||||
|
_fishy_collapsed_wd() {
|
||||||
|
echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g")
|
||||||
|
}
|
||||||
|
|
||||||
local user_color='green'; [ $UID -eq 0 ] && user_color='red'
|
local user_color='green'; [ $UID -eq 0 ] && user_color='red'
|
||||||
PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) '
|
PROMPT='%n@%m %{$fg[$user_color]%}$(_fishy_collapsed_wd)%{$reset_color%}%(!.#.>) '
|
||||||
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
|
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
|
||||||
|
|
||||||
local return_status="%{$fg_bold[red]%}%(?..%?)%{$reset_color%}"
|
local return_status="%{$fg_bold[red]%}%(?..%?)%{$reset_color%}"
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,22 @@
|
||||||
PROMPT=$'
|
PROMPT=$'
|
||||||
%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%}
|
%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)$(bzr_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%}
|
||||||
%{$fg_bold[black]%}>%{$reset_color%} '
|
%{$fg_bold[black]%}>%{$reset_color%} '
|
||||||
|
|
||||||
PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}"
|
PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}"
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}["
|
GIT_CB="git::"
|
||||||
|
ZSH_THEME_SCM_PROMPT_PREFIX="%{$fg[green]%}["
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=$ZSH_THEME_SCM_PROMPT_PREFIX$GIT_CB
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "
|
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
|
||||||
|
## Bazaar integration
|
||||||
|
bzr_prompt_info() {
|
||||||
|
BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'`
|
||||||
|
if [ -n "$BZR_CB" ]; then
|
||||||
|
BZR_DIRTY=""
|
||||||
|
[[ -n `bzr status` ]] && BZR_DIRTY="%{$fg[red]%} *%{$reset_color%}"
|
||||||
|
echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
||||||
12
themes/frontcube.zsh-theme
Normal file
12
themes/frontcube.zsh-theme
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
local rvm="%{$fg[green]%}[$(rvm-prompt i v g)]%{$reset_color%}"
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
%{$fg_bold[gray]%}%~%{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%}
|
||||||
|
%{$fg[green]%}➞ %{$reset_color%'
|
||||||
|
|
||||||
|
RPROMPT='$(git_prompt_info) $(rvm)'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[git:"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}] %{$fg[red]%}✖ %{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}] %{$fg[green]%}✔%{$reset_color%}"
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%#%{$reset_color%} '
|
function prompt_char {
|
||||||
|
if [ $UID -eq 0 ]; then echo "#"; else echo $; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%_$(prompt_char)%{$reset_color%} '
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="("
|
ZSH_THEME_GIT_PROMPT_PREFIX="("
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=") "
|
ZSH_THEME_GIT_PROMPT_SUFFIX=") "
|
||||||
|
|
|
||||||
24
themes/intheloop.zsh-theme
Normal file
24
themes/intheloop.zsh-theme
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# ZSH theme by James Smith (http://loopj.com)
|
||||||
|
# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status
|
||||||
|
|
||||||
|
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
|
||||||
|
|
||||||
|
local host_color="green"
|
||||||
|
if [ -n "$SSH_CLIENT" ]; then
|
||||||
|
local host_color="red"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status)
|
||||||
|
%{$fg_bold[cyan]%}❯%{$reset_color%} '
|
||||||
|
|
||||||
|
|
||||||
|
RPROMPT='${return_status}%{$reset_color%}'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})"
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}"
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
functions rbenv_prompt_info >& /dev/null || rbenv_prompt_info(){}
|
||||||
|
|
||||||
function theme_precmd {
|
function theme_precmd {
|
||||||
local TERMWIDTH
|
local TERMWIDTH
|
||||||
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
||||||
|
|
|
||||||
34
themes/junkfood.zsh-theme
Normal file
34
themes/junkfood.zsh-theme
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Tyler Cipriani
|
||||||
|
# oh-my-zsh theme
|
||||||
|
# Totally ripped off Dallas theme
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Grab the current date (%W) and time (%t):
|
||||||
|
JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %{$fg_bold[yellow]%}%W%{$reset_color%}@%{$fg_bold[white]%}%t )( %{$reset_color%}"
|
||||||
|
|
||||||
|
# Grab the current machine name
|
||||||
|
JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}"
|
||||||
|
|
||||||
|
# Grab the current username
|
||||||
|
JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}"
|
||||||
|
|
||||||
|
# Grab the current filepath, use shortcuts: ~/Desktop
|
||||||
|
# Append the current git branch, if in a git repository: ~aw@master
|
||||||
|
JUNKFOOD_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}"
|
||||||
|
|
||||||
|
# For the git prompt, use a white @ and blue text for the branch name
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}@%{$fg_bold[white]%}"
|
||||||
|
|
||||||
|
# Close it all off by resetting the color and styles.
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
|
||||||
|
# Do nothing if the branch is clean (no changes).
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✔"
|
||||||
|
|
||||||
|
# Add 3 cyan ✗s if this branch is diiirrrty! Dirty branch!
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗"
|
||||||
|
|
||||||
|
# Put it all together!
|
||||||
|
PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_
|
||||||
|
"
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} "
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
ZSH_THEME_GIT_PROMPT_CLEAN="]%{$reset_color%} "
|
||||||
|
ZSH_THEME_SVN_PROMPT_PREFIX=$ZSH_THEME_GIT_PROMPT_PREFIX
|
||||||
|
ZSH_THEME_SVN_PROMPT_SUFFIX=$ZSH_THEME_GIT_PROMPT_SUFFIX
|
||||||
|
ZSH_THEME_SVN_PROMPT_DIRTY=$ZSH_THEME_GIT_PROMPT_DIRTY
|
||||||
|
ZSH_THEME_SVN_PROMPT_CLEAN=$ZSH_THEME_GIT_PROMPT_CLEAN
|
||||||
|
|
||||||
#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
|
vcs_status() {
|
||||||
git_custom_status() {
|
if [[ ( $(whence in_svn) != "" ) && ( $(in_svn) == 1 ) ]]; then
|
||||||
local cb=$(current_branch)
|
svn_prompt_info
|
||||||
if [ -n "$cb" ]; then
|
else
|
||||||
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
git_prompt_info
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PROMPT='%2~ $(vcs_status)»%b '
|
||||||
PROMPT='%2~ $(git_custom_status) »%b '
|
|
||||||
|
|
@ -46,7 +46,8 @@ function ssh_connection() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# '
|
local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}"
|
||||||
|
PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# '
|
||||||
|
|
||||||
ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}"
|
ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}"
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"
|
ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}'
|
PROMPT='%{$fg[yellow]%}λ %m %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}'
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}"
|
ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}"
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}"
|
||||||
|
|
|
||||||
141
themes/simonoff.zsh-theme
Normal file
141
themes/simonoff.zsh-theme
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
# Prompt
|
||||||
|
#
|
||||||
|
# Below are the color init strings for the basic file types. A color init
|
||||||
|
# string consists of one or more of the following numeric codes:
|
||||||
|
# Attribute codes:
|
||||||
|
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
|
||||||
|
# Text color codes:
|
||||||
|
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
|
||||||
|
# Background color codes:
|
||||||
|
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
|
||||||
|
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 pwdsize=${#${(%):-%~}}
|
||||||
|
local gitbranch="$(git_prompt_info)"
|
||||||
|
local rvmprompt="$(rvm_prompt_info)"
|
||||||
|
local gitbranchsize=${#${gitbranch:-''}}
|
||||||
|
local rvmpromptsize=${#${rvmprompt:-''}}
|
||||||
|
|
||||||
|
if [[ "$promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize" -gt $TERMWIDTH ]]; then
|
||||||
|
((PR_PWDLEN=$TERMWIDTH - $promptsize))
|
||||||
|
else
|
||||||
|
PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize)))..${PR_SPACE}.)}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setopt extended_glob
|
||||||
|
|
||||||
|
preexec () {
|
||||||
|
if [[ "$TERM" == "screen" ]]; then
|
||||||
|
local CMD=${1[(wr)^(*=*|sudo|-*)]}
|
||||||
|
echo -n "\ek$CMD\e\\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERM" == "xterm" ]]; then
|
||||||
|
print -Pn "\e]0;$1\a"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERM" == "rxvt" ]]; then
|
||||||
|
print -Pn "\e]0;$1\a"
|
||||||
|
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; 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]%}"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
# 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_HBAR=${altchar[q]:--}
|
||||||
|
PR_ULCORNER=${altchar[l]:--}
|
||||||
|
PR_LLCORNER=${altchar[m]:--}
|
||||||
|
PR_LRCORNER=${altchar[j]:--}
|
||||||
|
PR_URCORNER=${altchar[k]:--}
|
||||||
|
|
||||||
|
###
|
||||||
|
# Modify Git prompt
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" ["
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="]"
|
||||||
|
###
|
||||||
|
# Modify RVM prompt
|
||||||
|
ZSH_THEME_RVM_PROMPT_PREFIX=" ["
|
||||||
|
ZSH_THEME_RVM_PROMPT_SUFFIX="]"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
# Decide if we need to set titlebar text.
|
||||||
|
|
||||||
|
case $TERM in
|
||||||
|
xterm*|*rxvt*)
|
||||||
|
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%M:%~ $(git_prompt_info) $(rvm_prompt_info) | ${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_RED$PR_HBAR<\
|
||||||
|
$PR_BLUE%(!.$PR_RED%SROOT%s.%n)$PR_GREEN@$PR_BLUE%M:$PR_GREEN%$PR_PWDLEN<...<%~$PR_CYAN$(git_prompt_info)$(rvm_prompt_info)\
|
||||||
|
$PR_RED>$PR_HBAR$PR_SPACE${(e)PR_FILLBAR}\
|
||||||
|
$PR_RED$PR_HBAR<\
|
||||||
|
$PR_GREEN%l$PR_RED>$PR_HBAR\
|
||||||
|
|
||||||
|
$PR_RED$PR_HBAR<\
|
||||||
|
%(?..$PR_LIGHT_RED%?$PR_BLUE:)\
|
||||||
|
$PR_LIGHT_BLUE%(!.$PR_RED.$PR_WHITE)%#$PR_RED>$PR_HBAR\
|
||||||
|
$PR_NO_COLOUR '
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
setprompt
|
||||||
13
themes/tjkirch_mod.zsh-theme
Normal file
13
themes/tjkirch_mod.zsh-theme
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
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%}'
|
||||||
|
|
@ -13,9 +13,8 @@ hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh
|
||||||
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
||||||
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
||||||
then
|
then
|
||||||
echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32]Backing up to ~/.zshrc.pre-oh-my-zsh\033[0m";
|
echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m";
|
||||||
cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
||||||
rm ~/.zshrc;
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m"
|
echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m"
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,20 @@ then
|
||||||
rm -rf ~/.oh-my-zsh
|
rm -rf ~/.oh-my-zsh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Looking for an existing zsh config..."
|
echo "Looking for original zsh config..."
|
||||||
if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ]
|
if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ]
|
||||||
then
|
then
|
||||||
echo "Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh";
|
echo "Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc";
|
||||||
rm ~/.zshrc;
|
|
||||||
cp ~/.zshrc.pre-oh-my-zsh ~/.zshrc;
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
||||||
|
then
|
||||||
|
ZSHRC_SAVE=".zshrc.omz-uninstalled-`date +%Y%m%d%H%M%S`";
|
||||||
|
echo "Found ~/.zshrc -- Renaming to ~/${ZSHRC_SAVE}";
|
||||||
|
mv ~/.zshrc ~/${ZSHRC_SAVE};
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc;
|
||||||
|
|
||||||
source ~/.zshrc;
|
source ~/.zshrc;
|
||||||
else
|
else
|
||||||
echo "Switching back to bash"
|
echo "Switching back to bash"
|
||||||
|
|
@ -17,4 +25,4 @@ else
|
||||||
source /etc/profile
|
source /etc/profile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
|
echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue