mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-09 02:24:03 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
a70a9140b8
60 changed files with 1163 additions and 68 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,5 +4,6 @@ projects.zsh
|
|||
custom/*
|
||||
!custom/example
|
||||
!custom/example.zsh
|
||||
cache
|
||||
*.swp
|
||||
!custom/example.zshcache
|
||||
cache/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
A handful of functions, auto-complete helpers, and stuff that makes you shout...
|
||||
|
||||
|
||||
bq. "OH MY ZSHELL!"
|
||||
|
||||
h2. Setup
|
||||
|
|
@ -68,9 +69,13 @@ h2. Help out!
|
|||
|
||||
I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
||||
|
||||
h3. Send us your theme!
|
||||
h3. (Don't) Send us your theme! (for now)
|
||||
|
||||
-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.-
|
||||
|
||||
We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there.
|
||||
|
||||
|
||||
I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
|
||||
|
||||
h2. Contributors
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ zstyle ':completion:*:hosts' hosts $hosts
|
|||
|
||||
# Use caching so that commands like apt and dpkg complete are useable
|
||||
zstyle ':completion::complete:*' use-cache 1
|
||||
zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/
|
||||
zstyle ':completion::complete:*' cache-path $ZSH/cache/
|
||||
|
||||
# Don't complete uninteresting users
|
||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ cd () {
|
|||
|
||||
alias md='mkdir -p'
|
||||
alias rd=rmdir
|
||||
alias d='dirs -v'
|
||||
alias d='dirs -v | head -10'
|
||||
|
||||
# mkdir & cd to it
|
||||
function mcd() {
|
||||
mkdir -p "$1" && cd "$1";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
36
lib/git.zsh
36
lib/git.zsh
|
|
@ -4,15 +4,21 @@ function git_prompt_info() {
|
|||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
}
|
||||
|
||||
|
||||
# Checks if working tree is dirty
|
||||
parse_git_dirty() {
|
||||
if [[ -n $(git status -s --ignore-submodules=dirty 2> /dev/null) ]]; then
|
||||
local SUBMODULE_SYNTAX=''
|
||||
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
|
||||
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
|
||||
fi
|
||||
if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Checks if there are commits ahead from remote
|
||||
function git_prompt_ahead() {
|
||||
if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
||||
|
|
@ -61,4 +67,30 @@ git_prompt_status() {
|
|||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
||||
fi
|
||||
echo $STATUS
|
||||
}
|
||||
}
|
||||
|
||||
#compare the provided version of git to the version installed and on path
|
||||
#prints 1 if input version <= installed version
|
||||
#prints -1 otherwise
|
||||
function git_compare_version() {
|
||||
local INPUT_GIT_VERSION=$1;
|
||||
local INSTALLED_GIT_VERSION
|
||||
INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
|
||||
INSTALLED_GIT_VERSION=($(git --version));
|
||||
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
|
||||
|
||||
for i in {1..3}; do
|
||||
if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then
|
||||
echo -1
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo 1
|
||||
}
|
||||
|
||||
#this is unlikely to change so make it all statically assigned
|
||||
POST_1_7_2_GIT=$(git_compare_version "1.7.2")
|
||||
#clean up the namespace slightly by removing the checker function
|
||||
unset -f git_compare_version
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
bindkey -e
|
||||
bindkey '\ew' kill-region
|
||||
bindkey -s '\el' "ls\n"
|
||||
bindkey -s '\e.' "..\n"
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
bindkey "^[[5~" up-line-or-history
|
||||
bindkey "^[[6~" down-line-or-history
|
||||
|
|
|
|||
|
|
@ -9,5 +9,5 @@ bindkey "^[m" copy-prev-shell-word
|
|||
setopt long_list_jobs
|
||||
|
||||
## pager
|
||||
export PAGER=less
|
||||
export PAGER="less -R"
|
||||
export LC_CTYPE=$LANG
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
# get the name of the branch we are on
|
||||
function rvm_prompt_info() {
|
||||
ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return
|
||||
echo "($ruby_version)"
|
||||
[[ ! -z $ruby_version ]] && echo "($ruby_version)"
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||
function title {
|
||||
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
|
||||
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
||||
return
|
||||
fi
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ for plugin ($plugins); do
|
|||
done
|
||||
|
||||
# Load all of your custom configurations from custom/
|
||||
for config_file ($ZSH_CUSTOM/*.zsh) source $config_file
|
||||
for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file
|
||||
|
||||
# Load the theme
|
||||
if [ "$ZSH_THEME" = "random" ]
|
||||
|
|
@ -65,12 +65,11 @@ then
|
|||
else
|
||||
if [ ! "$ZSH_THEME" = "" ]
|
||||
then
|
||||
if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ]
|
||||
if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]
|
||||
then
|
||||
source "$ZSH/custom/$ZSH_THEME.zsh-theme"
|
||||
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
|
||||
else
|
||||
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed
|
|||
. /usr/share/autojump/autojump.zsh
|
||||
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
|
||||
. /etc/profile.d/autojump.zsh
|
||||
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
|
||||
. /opt/local/etc/profile.d/autojump.zsh
|
||||
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew
|
||||
. `brew --prefix`/etc/autojump
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ alias bu="bundle update"
|
|||
|
||||
# The following is based on https://github.com/gma/bundler-exec
|
||||
|
||||
bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
|
||||
bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma)
|
||||
|
||||
## Functions
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,30 @@
|
|||
function _cap_does_task_list_need_generating () {
|
||||
if [ ! -f .cap_tasks~ ]; then return 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
|
||||
accurate=$(stat -f%m .cap_tasks~)
|
||||
changed=$(stat -f%m config/deploy.rb)
|
||||
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
|
||||
}
|
||||
|
|
@ -10,12 +32,10 @@ function _cap_does_task_list_need_generating () {
|
|||
function _cap () {
|
||||
if [ -f config/deploy.rb ]; then
|
||||
if _cap_does_task_list_need_generating; then
|
||||
echo "\nGenerating .cap_tasks~..." > /dev/stderr
|
||||
cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D'
|
||||
> .cap_tasks~
|
||||
_cap_get_task_list > ${_cap_task_cache_file}
|
||||
fi
|
||||
compadd `cat .cap_tasks~`
|
||||
compadd `cat ${_cap_task_cache_file}`
|
||||
fi
|
||||
}
|
||||
|
||||
compctl -K _cap cap
|
||||
compdef _cap cap
|
||||
|
|
|
|||
6
plugins/colemak/colemak-less
Normal file
6
plugins/colemak/colemak-less
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
n forw-line
|
||||
e back-line
|
||||
k repeat-search
|
||||
\ek repeat-search-all
|
||||
K reverse-search
|
||||
\eK reverse-search-all
|
||||
22
plugins/colemak/colemak.plugin.zsh
Normal file
22
plugins/colemak/colemak.plugin.zsh
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# ctrl-j newline
|
||||
bindkey '^n' accept-line
|
||||
bindkey -a '^n' accept-line
|
||||
|
||||
# another rotation to match qwerty
|
||||
bindkey -a 'n' down-line-or-history
|
||||
bindkey -a 'e' up-line-or-history
|
||||
bindkey -a 'i' vi-forward-char
|
||||
|
||||
# make qwerty
|
||||
bindkey -a 'k' vi-repeat-search
|
||||
bindkey -a 'K' vi-rev-repeat-search
|
||||
bindkey -a 'u' vi-insert
|
||||
bindkey -a 'U' vi-insert-bol
|
||||
bindkey -a 'l' vi-undo-change
|
||||
bindkey -a 'N' vi-join
|
||||
|
||||
# spare
|
||||
bindkey -a 'j' vi-forward-word-end
|
||||
bindkey -a 'J' vi-forward-blank-word-end
|
||||
|
||||
lesskey $ZSH_CUSTOM/plugins/colemak/colemak-less
|
||||
29
plugins/composer/composer.plugin.zsh
Normal file
29
plugins/composer/composer.plugin.zsh
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# ------------------------------------------------------------------------------
|
||||
# FILE: composer.plugin.zsh
|
||||
# DESCRIPTION: oh-my-zsh composer plugin file.
|
||||
# AUTHOR: Daniel Gomes (me@danielcsgomes.com)
|
||||
# VERSION: 1.0.0
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Composer basic command completion
|
||||
_composer_get_command_list () {
|
||||
composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
||||
}
|
||||
|
||||
_composer () {
|
||||
if [ -f composer.json ]; then
|
||||
compadd `_composer_get_command_list`
|
||||
fi
|
||||
}
|
||||
|
||||
compdef _composer composer
|
||||
|
||||
# Aliases
|
||||
alias c='composer'
|
||||
alias csu='composer self-update'
|
||||
alias cu='composer update'
|
||||
alias ci='composer install'
|
||||
alias ccp='composer create-project'
|
||||
|
||||
# install composer in the current directory
|
||||
alias cget='curl -s https://getcomposer.org/installer | php'
|
||||
|
|
@ -40,20 +40,23 @@ alias ap='apt-cache policy'
|
|||
# superuser operations ######################################################
|
||||
if [[ $use_sudo -eq 1 ]]; then
|
||||
# commands using sudo #######
|
||||
alias aac="sudo $apt_pref autoclean"
|
||||
alias abd="sudo $apt_pref build-dep"
|
||||
alias ac="sudo $apt_pref clean"
|
||||
alias ad="sudo $apt_pref update"
|
||||
alias adg="sudo $apt_pref update && sudo $apt_pref upgrade"
|
||||
alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade"
|
||||
alias aac='sudo $apt_pref autoclean'
|
||||
alias abd='sudo $apt_pref build-dep'
|
||||
alias ac='sudo $apt_pref clean'
|
||||
alias ad='sudo $apt_pref update'
|
||||
alias adg='sudo $apt_pref update && sudo $apt_pref upgrade'
|
||||
alias adu='sudo $apt_pref update && sudo $apt_pref dist-upgrade'
|
||||
alias afu='sudo apt-file update'
|
||||
alias ag="sudo $apt_pref upgrade"
|
||||
alias ai="sudo $apt_pref install"
|
||||
alias ap="sudo $apt_pref purge"
|
||||
alias ar="sudo $apt_pref remove"
|
||||
alias ag='sudo $apt_pref upgrade'
|
||||
alias ai='sudo $apt_pref install'
|
||||
# Install all packages given on the command line while using only the first word of each line:
|
||||
# acs ... | ail
|
||||
alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | "' xargs sudo $apt_pref install'
|
||||
alias ap='sudo $apt_pref purge'
|
||||
alias ar='sudo $apt_pref remove'
|
||||
|
||||
# apt-get only
|
||||
alias ads="sudo $apt_pref dselect-upgrade"
|
||||
alias ads='sudo $apt_pref dselect-upgrade'
|
||||
|
||||
# Install all .deb files in the current directory.
|
||||
# Warning: you will need to put the glob in single quotes if you use:
|
||||
|
|
@ -67,18 +70,18 @@ if [[ $use_sudo -eq 1 ]]; then
|
|||
|
||||
# commands using su #########
|
||||
else
|
||||
alias aac='su -ls "'"$apt_pref"' autoclean" root'
|
||||
alias aac='su -ls \'$apt_pref autoclean\' root'
|
||||
abd() {
|
||||
cmd="su -lc '$apt_pref build-dep $@' root"
|
||||
print "$cmd"
|
||||
eval "$cmd"
|
||||
}
|
||||
alias ac='su -ls "'"$apt_pref"' clean" root'
|
||||
alias ad='su -lc "'"$apt_pref"' update" root'
|
||||
alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root'
|
||||
alias adu='su -lc "'"$apt_pref"' update && aptitude dist-upgrade" root'
|
||||
alias ac='su -ls \'$apt_pref clean\' root'
|
||||
alias ad='su -lc \'$apt_pref update\' root'
|
||||
alias adg='su -lc \'$apt_pref update && aptitude safe-upgrade\' root'
|
||||
alias adu='su -lc \'$apt_pref update && aptitude dist-upgrade\' root'
|
||||
alias afu='su -lc "apt-file update"'
|
||||
alias ag='su -lc "'"$apt_pref"' safe-upgrade" root'
|
||||
alias ag='su -lc \'$apt_pref safe-upgrade\' root'
|
||||
ai() {
|
||||
cmd="su -lc 'aptitude -P install $@' root"
|
||||
print "$cmd"
|
||||
|
|
@ -118,7 +121,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
|
|||
apt-copy() {
|
||||
print '#!/bin/sh'"\n" > apt-copy.sh
|
||||
|
||||
cmd="$apt_pref install "
|
||||
cmd='$apt_pref install'
|
||||
|
||||
for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; {
|
||||
cmd="${cmd} ${p}"
|
||||
|
|
|
|||
10
plugins/dircycle/dircycle.plugin.zsh
Normal file
10
plugins/dircycle/dircycle.plugin.zsh
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
##
|
||||
# dircycle plugin: enables cycling through the directory
|
||||
# stack using Ctrl+Shift+Left/Right
|
||||
|
||||
eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }"
|
||||
zle -N insert-cycledleft
|
||||
bindkey "\e[1;6D" insert-cycledleft
|
||||
eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q -0'; zle accept-line }"
|
||||
zle -N insert-cycledright
|
||||
bindkey "\e[1;6C" insert-cycledright
|
||||
|
|
@ -12,7 +12,7 @@ dirpersistinstall () {
|
|||
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
|
||||
else
|
||||
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
|
||||
echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
|
||||
echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
|
||||
else
|
||||
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
|
||||
fi
|
||||
|
|
|
|||
2
plugins/encode64/encode64.plugin.zsh
Normal file
2
plugins/encode64/encode64.plugin.zsh
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
encode64(){ echo -n $1 | base64 }
|
||||
decode64(){ echo -n $1 | base64 -D }
|
||||
6
plugins/fasd/fasd.plugin.zsh
Normal file
6
plugins/fasd/fasd.plugin.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
if [ $commands[fasd] ]; then # check if fasd is installed
|
||||
eval "$(fasd --init auto)"
|
||||
alias v='f -e vim'
|
||||
alias o='a -e open'
|
||||
fi
|
||||
|
||||
|
|
@ -110,6 +110,8 @@ __git-flow-release ()
|
|||
-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_flow_version_list'
|
||||
;;
|
||||
|
||||
|
|
@ -162,6 +164,8 @@ __git-flow-hotfix ()
|
|||
-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_flow_hotfix_list'
|
||||
;;
|
||||
|
||||
|
|
|
|||
|
|
@ -54,10 +54,16 @@ function current_branch() {
|
|||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
function current_repository() {
|
||||
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
||||
echo $(git remote -v | cut -d':' -f 2)
|
||||
}
|
||||
|
||||
# these aliases take advantage of the previous function
|
||||
alias ggpull='git pull origin $(current_branch)'
|
||||
compdef ggpull=git
|
||||
alias ggpush='git push origin $(current_branch)'
|
||||
compdef ggpush=git
|
||||
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
|
||||
compdef ggpnp=git
|
||||
compdef ggpnp=git
|
||||
|
|
|
|||
22
plugins/jira/jira.plugin.zsh
Normal file
22
plugins/jira/jira.plugin.zsh
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# To use: add a .jira-url file in the base of your project
|
||||
# Setup: cd to/my/project
|
||||
# echo "https://name.jira.com" >> .jira-url
|
||||
# Usage: jira # opens a new issue
|
||||
# jira ABC-123 # Opens an existing issue
|
||||
open_jira_issue () {
|
||||
if [ ! -f .jira-url ]; then
|
||||
echo "There is no .jira-url file in the current directory..."
|
||||
return 0;
|
||||
else
|
||||
jira_url=$(cat .jira-url);
|
||||
if [ -z "$1" ]; then
|
||||
echo "Opening new issue";
|
||||
`open $jira_url/secure/CreateIssue!default.jspa`;
|
||||
else
|
||||
echo "Opening issue #$1";
|
||||
`open $jira_url/issues/$1`;
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
alias jira='open_jira_issue'
|
||||
4
plugins/jruby/jruby.plugin.zsh
Executable file
4
plugins/jruby/jruby.plugin.zsh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
# Aliases
|
||||
alias jrspec='jruby --debug -S rspec --debug'
|
||||
alias jprofile='jruby --profile.api -S rspec'
|
||||
alias jexec='jruby -S'
|
||||
40
plugins/laravel/_artisan
Normal file
40
plugins/laravel/_artisan
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#compdef artisan
|
||||
|
||||
# Laravel autocompletion
|
||||
# Author: John Hamelink <john@johnhamelink.com>
|
||||
#
|
||||
# This plugin does the following:
|
||||
# - Adds aliases and autocompletion for artisan
|
||||
# - Adds aliases and autocompletion for bob
|
||||
|
||||
local curcontext="$curcontext" state line _opts _bundles ret=1
|
||||
_arguments -C \
|
||||
'1: :->cmds' \
|
||||
'*:: :->args' && ret=0
|
||||
|
||||
case $state in
|
||||
cmds)
|
||||
|
||||
_values "Artisan command" \
|
||||
'session\:install[Create a session table]' \
|
||||
'migrate[Manage Migrations]' \
|
||||
'test[Run a test]' \
|
||||
'route\:\:call[Call a route in the CLI]' \
|
||||
'key\:\:generate[Generate a key]'
|
||||
ret=0
|
||||
;;
|
||||
args)
|
||||
case $line[1] in
|
||||
migrate)
|
||||
_values \
|
||||
'install[Create the Laravel migration table' \
|
||||
'make[Create a migration]' \
|
||||
'rollback[Roll back to the last migration operation]' \
|
||||
'reset[Roll back all migrations that have ever run]'
|
||||
ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
return ret
|
||||
3
plugins/laravel/laravel.plugin.zsh
Normal file
3
plugins/laravel/laravel.plugin.zsh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#!zsh
|
||||
alias artisan='php artisan'
|
||||
alias bob='php artisan bob::build'
|
||||
|
|
@ -29,7 +29,7 @@ alias iminurbase='finger'
|
|||
alias btw='nice'
|
||||
alias obtw='nohup'
|
||||
|
||||
alias nomz='ps -aux'
|
||||
alias nomz='ps aux'
|
||||
alias nomnom='killall'
|
||||
|
||||
alias byes='exit'
|
||||
|
|
|
|||
6
plugins/mvn/mvn.plugin.zsh
Normal file
6
plugins/mvn/mvn.plugin.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
function listMavenCompletions {
|
||||
reply=(
|
||||
cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`);
|
||||
}
|
||||
|
||||
compctl -K listMavenCompletions mvn
|
||||
44
plugins/nanoc/_nanoc
Normal file
44
plugins/nanoc/_nanoc
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#compdef nanoc
|
||||
#autoload
|
||||
|
||||
# nanoc zsh completion - based on the homebrew zsh completion
|
||||
# requires the 'nanoc' gem to be installed
|
||||
|
||||
local -a _1st_arguments
|
||||
_1st_arguments=(
|
||||
'autocompile:start the autocompiler'
|
||||
'compile:compile items of this site'
|
||||
'create-item:create an item'
|
||||
'create-layout:create a layout'
|
||||
'create-site:create a site'
|
||||
'deploy:deploy the compiled site'
|
||||
'help:show help'
|
||||
'prune:remove files not managed by nanoc from the output directory'
|
||||
'show-data:show data in this site'
|
||||
'show-plugins:show all available plugins'
|
||||
'show-rules:describe the rules for each item'
|
||||
'update:update the data stored by the data source to a newer version'
|
||||
'validate-css:validate the site’s CSS'
|
||||
'validate-html:validate the site’s HTML'
|
||||
'validate-links:validate links in site'
|
||||
'view:start the web server that serves static files'
|
||||
'watch:start the watcher'
|
||||
)
|
||||
|
||||
local expl
|
||||
local -a pkgs installed_pkgs
|
||||
|
||||
_arguments \
|
||||
'(--color)--color[enable color]' \
|
||||
'(--debug)--debug[enable debugging]' \
|
||||
'(--help)--help[show the help message and quit]' \
|
||||
'(--no-color)--no-color[disable color]' \
|
||||
'(--verbose)--verbose[make nanoc output more detailed]' \
|
||||
'(--version)--version[show version information and quit]' \
|
||||
'(--warn)--warn[enable warnings]' \
|
||||
'*:: :->subcmds' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands "nanoc subcommand" _1st_arguments
|
||||
return
|
||||
fi
|
||||
9
plugins/nanoc/nanoc.plugin.zsh
Normal file
9
plugins/nanoc/nanoc.plugin.zsh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
alias n='nanoc'
|
||||
alias na='nanoc autocompile'
|
||||
alias nco='nanoc compile'
|
||||
alias nci='nanoc create_item'
|
||||
alias ncl='nanoc create_layout'
|
||||
alias ncs='nanoc create_site'
|
||||
alias nd='nanoc deploy'
|
||||
alias nv='nanoc view'
|
||||
alias nw='nanoc watch'
|
||||
148
plugins/per-directory-history/per-directory-history.plugin.zsh
Normal file
148
plugins/per-directory-history/per-directory-history.plugin.zsh
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
#!/usr/bin/env zsh
|
||||
#
|
||||
# This is a implementation of per directory history for zsh, some
|
||||
# implementations of which exist in bash[1,2]. It also implements
|
||||
# a per-directory-history-toggle-history function to change from using the
|
||||
# directory history to using the global history. In both cases the history is
|
||||
# always saved to both the global history and the directory history, so the
|
||||
# toggle state will not effect the saved histories. Being able to switch
|
||||
# between global and directory histories on the fly is a novel feature as far
|
||||
# as I am aware.
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
# Configuration
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# HISTORY_BASE a global variable that defines the base directory in which the
|
||||
# directory histories are stored
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
# History
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
|
||||
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
|
||||
# mailing list[3]. The implementation is by Jim Hester in September 2012.
|
||||
#
|
||||
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
|
||||
# [2]: http://dieter.plaetinck.be/per_directory_bash
|
||||
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
|
||||
#
|
||||
################################################################################
|
||||
#
|
||||
# Copyright (c) 2012 Jim Hester
|
||||
#
|
||||
# This software is provided 'as-is', without any express or implied warranty.
|
||||
# In no event will the authors be held liable for any damages arising from the
|
||||
# use of this software.
|
||||
#
|
||||
# Permission is granted to anyone to use this software for any purpose,
|
||||
# including commercial applications, and to alter it and redistribute it
|
||||
# freely, subject to the following restrictions:
|
||||
#
|
||||
# 1. The origin of this software must not be misrepresented; you must not claim
|
||||
# that you wrote the original software. If you use this software in a product,
|
||||
# an acknowledgment in the product documentation would be appreciated but is
|
||||
# not required.
|
||||
#
|
||||
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||
# misrepresented as being the original software.
|
||||
#
|
||||
# 3. This notice may not be removed or altered from any source distribution..
|
||||
#
|
||||
################################################################################
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# configuration, the base under which the directory histories are stored
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# toggle global/directory history used for searching - ctrl-G by default
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
function per-directory-history-toggle-history() {
|
||||
if [[ $_per_directory_history_is_global == true ]]; then
|
||||
_per-directory-history-set-directory-history
|
||||
echo "using local history\n"
|
||||
else
|
||||
_per-directory-history-set-global-history
|
||||
echo "using global history\n"
|
||||
fi
|
||||
zle reset-prompt
|
||||
}
|
||||
|
||||
autoload per-directory-history-toggle-history
|
||||
zle -N per-directory-history-toggle-history
|
||||
bindkey '^G' per-directory-history-toggle-history
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# implementation details
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
||||
|
||||
function _per-directory-history-change-directory() {
|
||||
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
||||
mkdir -p ${_per_directory_history_directory:h}
|
||||
if [[ $_per_directory_history_is_global == false ]]; then
|
||||
#save to the global history
|
||||
fc -AI $HISTFILE
|
||||
#save history to previous file
|
||||
local prev="$HISTORY_BASE${OLDPWD:A}/history"
|
||||
mkdir -p ${prev:h}
|
||||
fc -AI $prev
|
||||
|
||||
#discard previous directory's history
|
||||
local original_histsize=$HISTSIZE
|
||||
HISTSIZE=0
|
||||
HISTSIZE=$original_histsize
|
||||
|
||||
#read history in new file
|
||||
if [[ -e $_per_directory_history_directory ]]; then
|
||||
fc -R $_per_directory_history_directory
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function _per-directory-history-addhistory() {
|
||||
print -sr -- ${1%%$'\n'}
|
||||
fc -p $_per_directory_history_directory
|
||||
}
|
||||
|
||||
|
||||
function _per-directory-history-set-directory-history() {
|
||||
if [[ $_per_directory_history_is_global == true ]]; then
|
||||
fc -AI $HISTFILE
|
||||
local original_histsize=$HISTSIZE
|
||||
HISTSIZE=0
|
||||
HISTSIZE=$original_histsize
|
||||
if [[ -e "$_per_directory_history_directory" ]]; then
|
||||
fc -R "$_per_directory_history_directory"
|
||||
fi
|
||||
fi
|
||||
_per_directory_history_is_global=false
|
||||
}
|
||||
function _per-directory-history-set-global-history() {
|
||||
if [[ $_per_directory_history_is_global == false ]]; then
|
||||
fc -AI $_per_directory_history_directory
|
||||
local original_histsize=$HISTSIZE
|
||||
HISTSIZE=0
|
||||
HISTSIZE=$original_histsize
|
||||
if [[ -e "$HISTFILE" ]]; then
|
||||
fc -R "$HISTFILE"
|
||||
fi
|
||||
fi
|
||||
_per_directory_history_is_global=true
|
||||
}
|
||||
|
||||
|
||||
#add functions to the exec list for chpwd and zshaddhistory
|
||||
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
|
||||
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
|
||||
|
||||
#start in directory mode
|
||||
mkdir -p ${_per_directory_history_directory:h}
|
||||
_per_directory_history_is_global=true
|
||||
_per-directory-history-set-directory-history
|
||||
|
|
@ -2,4 +2,7 @@
|
|||
alias pyfind='find . -name "*.py"'
|
||||
|
||||
# Remove python compiled byte-code
|
||||
alias pyclean='find . -type f -name "*.py[co]" -exec rm -f \{\} \;'
|
||||
alias pyclean='find . -type f -name "*.py[co]" -delete'
|
||||
|
||||
# Grep among .py files
|
||||
alias pygrep='grep --include="*.py"'
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ alias rd='_rails_command destroy'
|
|||
alias rdb='_rails_command dbconsole'
|
||||
alias rdbm='rake db:migrate db:test:clone'
|
||||
alias rg='_rails_command generate'
|
||||
alias rgm='_rails_command generate migration'
|
||||
alias rp='_rails_command plugin'
|
||||
alias ru='_rails_command runner'
|
||||
alias rs='_rails_command server'
|
||||
|
|
|
|||
|
|
@ -1,10 +1,23 @@
|
|||
_homebrew-installed() {
|
||||
type brew &> /dev/null
|
||||
}
|
||||
|
||||
_rbenv-from-homebrew-installed() {
|
||||
brew --prefix rbenv &> /dev/null
|
||||
}
|
||||
|
||||
FOUND_RBENV=0
|
||||
for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do
|
||||
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv")
|
||||
if _homebrew-installed && _rbenv-from-homebrew-installed ; then
|
||||
rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
|
||||
fi
|
||||
|
||||
for rbenvdir in "${rbenvdirs[@]}" ; do
|
||||
if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
|
||||
FOUND_RBENV=1
|
||||
export RBENV_ROOT=$rbenvdir
|
||||
export PATH=${rbenvdir}/bin:$PATH
|
||||
eval "$(rbenv init -)"
|
||||
eval "$(rbenv init - zsh)"
|
||||
|
||||
alias rubies="rbenv versions"
|
||||
alias gemsets="rbenv gemset list"
|
||||
|
|
|
|||
42
plugins/rbfu/rbfu.plugin.zsh
Normal file
42
plugins/rbfu/rbfu.plugin.zsh
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Enables rbfu with --auto option, if available.
|
||||
#
|
||||
# Also provides a command to list all installed/available
|
||||
# rubies. To ensure compatibility with themes, creates the
|
||||
# rvm_prompt_info function to return the $RBFU_RUBY_VERSION
|
||||
# version.
|
||||
|
||||
command -v rbfu &>/dev/null
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
eval "$(rbfu --init --auto)"
|
||||
|
||||
# Internal: Print ruby version details, if it's currently
|
||||
# active etc.
|
||||
function _rbfu_rubies_print() {
|
||||
local rb rb_out
|
||||
rb=$(basename $1)
|
||||
rb_out="$rb"
|
||||
[[ -h $1 ]] && rb_out="$rb_out${fg[green]}@${reset_color}"
|
||||
[[ "x$rb" == "x$2" ]] && rb_out="${fg[red]}$rb_out ${fg[red]}*${reset_color}"
|
||||
echo $rb_out
|
||||
}
|
||||
|
||||
# Public: Provide a list with all available rubies, this basically depends
|
||||
# on `ls -1` and .rfbu/rubies. Highlights the currently active ruby version
|
||||
# and aliases.
|
||||
function rbfu-rubies() {
|
||||
local rbfu_dir active_rb
|
||||
rbfu_dir=$RBFU_RUBIES
|
||||
active_rb=$RBFU_RUBY_VERSION
|
||||
[[ -z "$rbfu_dir" ]] && rbfu_dir="${HOME}/.rbfu/rubies"
|
||||
[[ -z "$active_rb" ]] && active_rb="system"
|
||||
_rbfu_rubies_print "${rbfu_dir}/system" $active_rb
|
||||
for rb in $(ls -1 $rbfu_dir); do
|
||||
_rbfu_rubies_print "${rbfu_dir}/${rb}" $active_rb
|
||||
done
|
||||
}
|
||||
|
||||
# Public: Create rvm_prompt_info command for themes compatibility, unless
|
||||
# it has already been defined.
|
||||
[ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" }
|
||||
fi
|
||||
54
plugins/screen/screen.plugin.zsh
Normal file
54
plugins/screen/screen.plugin.zsh
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
||||
# of the tab window should be.
|
||||
if [[ $TERM == "screen" ]]; then
|
||||
if [[ $_GET_PATH == '' ]]; then
|
||||
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
||||
fi
|
||||
if [[ $_GET_HOST == '' ]]; then
|
||||
_GET_HOST='echo $HOST | sed "s/\..*//"'
|
||||
fi
|
||||
|
||||
# use the current user as the prefix of the current tab title
|
||||
TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
|
||||
# when at the shell prompt, show a truncated version of the current path (with
|
||||
# standard ~ replacement) as the rest of the title.
|
||||
TAB_TITLE_PROMPT='$SHELL:t'
|
||||
# when running a command, show the title of the command as the rest of the
|
||||
# title (truncate to drop the path to the command)
|
||||
TAB_TITLE_EXEC='$cmd[1]:t'
|
||||
|
||||
# use the current path (with standard ~ replacement) in square brackets as the
|
||||
# prefix of the tab window hardstatus.
|
||||
TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
|
||||
# when at the shell prompt, use the shell name (truncated to remove the path to
|
||||
# the shell) as the rest of the title
|
||||
TAB_HARDSTATUS_PROMPT='$SHELL:t'
|
||||
# when running a command, show the command name and arguments as the rest of
|
||||
# the title
|
||||
TAB_HARDSTATUS_EXEC='$cmd'
|
||||
|
||||
# tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
|
||||
function screen_set()
|
||||
{
|
||||
# set the tab window title (%t) for screen
|
||||
print -nR $'\033k'$1$'\033'\\\
|
||||
|
||||
# set hardstatus of tab window (%h) for screen
|
||||
print -nR $'\033]0;'$2$'\a'
|
||||
}
|
||||
# called by zsh before executing a command
|
||||
function preexec()
|
||||
{
|
||||
local -a cmd; cmd=(${(z)1}) # the command string
|
||||
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC"
|
||||
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC"
|
||||
screen_set $tab_title $tab_hardstatus
|
||||
}
|
||||
# called by zsh before showing the prompt
|
||||
function precmd()
|
||||
{
|
||||
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT"
|
||||
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT"
|
||||
screen_set $tab_title $tab_hardstatus
|
||||
}
|
||||
fi
|
||||
9
plugins/sublime/sublime.plugin.zsh
Executable file
9
plugins/sublime/sublime.plugin.zsh
Executable file
|
|
@ -0,0 +1,9 @@
|
|||
# Sublime Text 2 Aliases
|
||||
#unamestr = 'uname'
|
||||
|
||||
if [[ $('uname') == 'Linux' ]]; then
|
||||
alias st='/usr/bin/sublime_text&'
|
||||
elif [[ $('uname') == 'Darwin' ]]; then
|
||||
alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl'
|
||||
fi
|
||||
alias stt='st .'
|
||||
136
plugins/supervisor/_supervisorctl
Normal file
136
plugins/supervisor/_supervisorctl
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
#compdef supervisorctl
|
||||
|
||||
typeset -A opt_args
|
||||
local context state line
|
||||
|
||||
_supervisorctl() {
|
||||
_arguments -s -S \
|
||||
{--configuration,-c}"[configuration file path (default /etc/supervisor.conf)]:FILENAME:_files" \
|
||||
{--help,-h}"[print usage message and exit]:" \
|
||||
{--interactive,-i}"[start an interactive shell after executing commands]" \
|
||||
{--serverurl,-s}"[URL on which supervisord server is listening (default "http://localhost:9001").]" \
|
||||
{--username,-u}"[username to use for authentication with server]:USERNAME:_users" \
|
||||
{--password,-p}"[password to use for authentication with server]:PASSWORD:" \
|
||||
{--history-file,-r}"[keep a readline history (if readline is available)]:FILENAME:_files" \
|
||||
"*::supervisorctl commands:_supervisorctl_command"
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_command] )) ||
|
||||
_supervisorctl_command() {
|
||||
local cmd ret=1
|
||||
|
||||
(( $+supervisorctl_cmds )) || _supervisorctl_cmds=(
|
||||
"add:Activates any updates in config for process/group" \
|
||||
"avail:Display all configured processes" \
|
||||
"clear:Clear process/multiple-process/all-process log files" \
|
||||
"exit:Exit the supervisor shell." \
|
||||
"fg:Connect to a process in foreground mode" \
|
||||
"maintail:tail of supervisor main log file" \
|
||||
"open:Connect to a remote supervisord process. (for UNIX domain socket, use unix:///socket/path)" \
|
||||
"pid:Get the PID of supervisord." \
|
||||
"quit:Exit the supervisor shell." \
|
||||
"reload:Restart the remote supervisord." \
|
||||
"remove:Removes process/group from active config" \
|
||||
"reread:Reload the daemon's configuration files" \
|
||||
"restart:Restart process or group." \
|
||||
"shutdown:Shut the remote supervisord down." \
|
||||
"start:Start process or groups." \
|
||||
"status:Get process status info." \
|
||||
"stop:Stop process or group." \
|
||||
"tail:tail of process stdout" \
|
||||
"update:Reload config and add/remove as necessary" \
|
||||
"version:Show the version of the remote supervisord process" \
|
||||
"help:Show help" \
|
||||
)
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands 'supervisorctl subcommand' _supervisorctl_cmds \
|
||||
|| compadd "$@" - ${(s.:.)${(j.:.)_supervisorctl_syns}}
|
||||
else
|
||||
local curcontext="$curcontext"
|
||||
|
||||
cmd="${${_supervisorctl_cmds[(r)$words[1]:*]%%:*}:-${(k)_supervisorctl_syns[(r)(*:|)$words[1](:*|)]}}"
|
||||
if (( $#cmd )); then
|
||||
curcontext="${curcontext%:*:*}:supervisorctl-${cmd}:"
|
||||
_call_function ret _supervisorctl_$cmd || _message 'no more arguments'
|
||||
else
|
||||
_message "unknown supervisorctl command: $words[1]"
|
||||
fi
|
||||
return ret
|
||||
fi
|
||||
}
|
||||
|
||||
# get supervisor contoroll processes
|
||||
(( $+functions[_get_supervisor_procs] )) ||
|
||||
_get_supervisor_procs() {
|
||||
local cache_policy
|
||||
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
|
||||
if [[ -z "$cache_policy" ]]; then
|
||||
zstyle ":completion:${curcontext}:" cache-policy _supervisor_procs_caching_policy
|
||||
fi
|
||||
|
||||
if ( [[ ${+_supervisor_procs} -eq 0 ]] || _cache_invalid supervisor_procs ) \
|
||||
&& ! _retrieve_cache supervisor_procs; then
|
||||
|
||||
_supervisor_procs=(${${(f)"$(supervisorctl status >/dev/null 2>&1 | awk -F' ' '{print $1}')"}})
|
||||
_store_cache supervisor_procs _supervisor_procs
|
||||
fi
|
||||
|
||||
local expl
|
||||
_wanted supervisor_procs expl 'supervisor processes' compadd -a _supervisor_procs
|
||||
}
|
||||
|
||||
_supervisor_procs_caching_policy() {
|
||||
local -a oldp
|
||||
oldp=( "$1"(Nmw+1) )
|
||||
(( $#oldp ))
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_add] )) ||
|
||||
_supervisorctl_add() {
|
||||
_arguments -s \
|
||||
"--help[use help system]" \
|
||||
"*::supervisorctl commands:_supervisorctl"
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_help] )) ||
|
||||
_supervisorctl_help() {
|
||||
_arguments -s \
|
||||
"*:supervisorctl commands:_supervisorctl"
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_maintail] )) ||
|
||||
_supervisorctl_maintail() {
|
||||
_arguments -s \
|
||||
'-f[Continuous tail of supervisor main log file (Ctrl-C to exit)]'
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_start] )) ||
|
||||
_supervisorctl_start() {
|
||||
# TODO: add 'all'
|
||||
_arguments -s \
|
||||
'*::supvervisor process:_get_supervisor_procs'
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_status] )) ||
|
||||
_supervisorctl_status() {
|
||||
_arguments \
|
||||
'*::supvervisor process:_get_supervisor_procs'
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_stop] )) ||
|
||||
_supervisorctl_stop() {
|
||||
# TODO: add 'all'
|
||||
_arguments -s \
|
||||
'*::supvervisor process:_get_supervisor_procs'
|
||||
}
|
||||
|
||||
(( $+functions[_supervisorctl_tail] )) ||
|
||||
_supervisorctl_tail() {
|
||||
# TODO: add 'stderr'
|
||||
_arguments -s \
|
||||
'-f[Continuous tail of named process stdout Ctrl-C to exit.]' \
|
||||
'*::supvervisor process:_get_supervisor_procs'
|
||||
}
|
||||
|
||||
_supervisorctl "$@"
|
||||
32
plugins/supervisor/_supervisord
Normal file
32
plugins/supervisor/_supervisord
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#compdef supervisord
|
||||
|
||||
typeset -A opt_args
|
||||
local context state line
|
||||
|
||||
_arguments \
|
||||
{--configuration,-c}"[configuration file]:FILENAME:_files" \
|
||||
{--nodaemon,-n}"[run in the foreground (same as 'nodaemon true' in config file)]" \
|
||||
{--help,-h}"[print this usage message and exit]:" \
|
||||
{--user,-u}"[run supervisord as this user]:USER:_users" \
|
||||
{--umask,-m}"[use this umask for daemon subprocess (default is 022)]" \
|
||||
{--directory,-d}"[directory to chdir to when daemonized]" \
|
||||
{--logfile,-l}"[use FILENAME as logfile path]:FILENAME:_files" \
|
||||
{--logfile_maxbytes,-y}"[use BYTES to limit the max size of logfile]" \
|
||||
{--logfile_backups,-z}"[number of backups to keep when max bytes reached]" \
|
||||
{--loglevel,-e}"[use LEVEL as log level (debug,info,warn,error,critical)]:level:->levels" \
|
||||
{--pidfile,-j}"[write a pid file for the daemon process to FILENAME]:FILENAME:_files" \
|
||||
{--identifier,-i}"[identifier used for this instance of supervisord]" \
|
||||
{--childlogdir,-q}"[the log directory for child process logs]:child log directory:_files -/" \
|
||||
{--nocleanup,-k}"[prevent the process from performing cleanup (removal of old automatic child log files) at startup.]" \
|
||||
{--minfds,-a}"[the minimum number of file descriptors for start success]" \
|
||||
{--strip_ansi,-t}"[strip ansi escape codes from process output]" \
|
||||
"--minprocs[the minimum number of processes available for start success]" \
|
||||
"--profile_options[run supervisord under profiler and output results based on OPTIONS, which is a comma-sep'd list of 'cumulative', 'calls', and/or 'callers', e.g. 'cumulative,callers')]" \
|
||||
"*::args:_gnu_generic"
|
||||
|
||||
case $state in
|
||||
levels)
|
||||
levels=("debug" "info" "warn" "error" "critical")
|
||||
_describe -t levels 'supervisord levels' levels && return 0
|
||||
;;
|
||||
esac
|
||||
1
plugins/supervisor/supervisor.plugin.zsh
Normal file
1
plugins/supervisor/supervisor.plugin.zsh
Normal file
|
|
@ -0,0 +1 @@
|
|||
# DECLARION: This plugin was created by hhatto. What I did is just making a portal from https://bitbucket.org/hhatto/zshcompfunc4supervisor.
|
||||
7
plugins/suse/suse.plugin.zsh
Normal file
7
plugins/suse/suse.plugin.zsh
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
alias zi='sudo zypper install'
|
||||
alias zrf='sudo zypper refresh'
|
||||
alias zs='zypper search'
|
||||
alias zup='sudo zypper dist-upgrade'
|
||||
alias zrm='sudo zypper remove'
|
||||
alias zp='sudo zypper patch'
|
||||
alias zps='sudo zypper ps'
|
||||
|
|
@ -16,7 +16,7 @@ function svn_get_repo_name {
|
|||
if [ $(in_svn) ]; then
|
||||
svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
|
||||
|
||||
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//"
|
||||
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,4 +10,8 @@ _symfony2 () {
|
|||
fi
|
||||
}
|
||||
|
||||
compdef _symfony2 app/console
|
||||
compdef _symfony2 app/console
|
||||
|
||||
#Alias
|
||||
alias sf2='php app/console'
|
||||
alias sf2clear='php app/console cache:clear'
|
||||
9
plugins/urltools/urltools.plugin.zsh
Normal file
9
plugins/urltools/urltools.plugin.zsh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# URL Tools
|
||||
# Adds handy command line aliases useful for dealing with URLs
|
||||
#
|
||||
# Taken from:
|
||||
# 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])"'
|
||||
|
||||
alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
|
||||
|
|
@ -5,7 +5,12 @@ function zle-line-init zle-keymap-select {
|
|||
zle -N zle-line-init
|
||||
zle -N zle-keymap-select
|
||||
|
||||
#changing mode clobbers the keybinds, so store the keybinds before and execute
|
||||
#them after
|
||||
binds=`bindkey -L`
|
||||
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" == "" ]]; then
|
||||
|
|
|
|||
46
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
Normal file
46
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
WRAPPER_FOUND=0
|
||||
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
|
||||
# Automatically activate Git projects' virtual environments based on the
|
||||
# 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
|
||||
function cd {
|
||||
builtin cd "$@" && workon_cwd
|
||||
}
|
||||
fi
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $WRAPPER_FOUND -eq 0 ] ; then
|
||||
print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`."
|
||||
fi
|
||||
|
|
@ -3,10 +3,14 @@
|
|||
alias ys="yum search" # search package
|
||||
alias yp="yum info" # show package info
|
||||
alias yl="yum list" # list packages
|
||||
alias ygl="yum grouplist" # list package groups
|
||||
alias yli="yum list installed" # print all installed packages
|
||||
alias ymc="yum makecache" # rebuilds the yum package list
|
||||
|
||||
alias yu="sudo yum update" # upgrate packages
|
||||
alias yi="sudo yum install" # install package
|
||||
alias ygi="sudo yum groupinstall" # install package group
|
||||
alias yr="sudo yum remove" # remove package
|
||||
alias ygr="sudo yum groupremove" # remove pagage group
|
||||
alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
|
||||
alias yc="sudo yum clean all" # clean cache
|
||||
alias yc="sudo yum clean all" # clean cache
|
||||
41
plugins/zeus/README.md
Normal file
41
plugins/zeus/README.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
## zeus
|
||||
**Maintainer:** [b4mboo](https://github.com/b4mboo)
|
||||
|
||||
* `zi` aliases `zeus init`
|
||||
* `zinit` aliases `zeus init`
|
||||
|
||||
* `zs` aliases `zeus start`
|
||||
* `ztart` aliases `zeus start`
|
||||
|
||||
* `zc` aliases `zeus console`
|
||||
* `zonsole` aliases `zeus console`
|
||||
|
||||
* `zsr` aliases `zeus server`
|
||||
* `zerver` aliases `zeus server`
|
||||
|
||||
* `zr` aliases `zeus rake`
|
||||
* `zake` aliases `zeus rake`
|
||||
|
||||
* `zg` aliases `zeus generate`
|
||||
* `zenerate` aliases `zeus generate`
|
||||
|
||||
* `zrn` aliases `zeus runner`
|
||||
* `zunner` aliases `zeus runner`
|
||||
|
||||
* `zcu` aliases `zeus cucumber`
|
||||
* `zucumber` aliases `zeus cucumber`
|
||||
|
||||
* `zt` aliases `zeus test`
|
||||
* `zest` aliases `zeus test`
|
||||
|
||||
* `zu` aliases `zeus test test/unit/*`
|
||||
* `zunits` aliases `zeus test test/unit/*`
|
||||
|
||||
* `zf` aliases `zeus test test/functional/*`
|
||||
* `zunctional` aliases `zeus test test/functional/*`
|
||||
|
||||
* `za` aliases `zeus test test/unit/*; zeus test test/functional/; zeus cucumber`
|
||||
* `zall` aliases `zeus test test/unit/*; zeus test test/functional/; zeus cucumber`
|
||||
|
||||
* `zsw` aliases `rm .zeus.sock`
|
||||
* `zweep` aliases `rm .zeus.sock`
|
||||
58
plugins/zeus/zeus.plugin.zsh
Normal file
58
plugins/zeus/zeus.plugin.zsh
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# Some aliases for zeus. (See: https://github.com/burke/zeus)
|
||||
# Zeus preloads your Rails environment and forks that process whenever
|
||||
# needed. This effectively speeds up Rails' boot process to under 1 sec.
|
||||
|
||||
# Always use bundler.
|
||||
# Rails depends on bundler, so we can be pretty sure, that there are no
|
||||
# problems with this command. For all the other aliases I provided an
|
||||
# alternative, in case people have conflicts with other plugins (e.g. suse).
|
||||
alias zeus='bundle exec zeus'
|
||||
|
||||
# Init
|
||||
alias zi='zeus init'
|
||||
alias zinit='zeus init'
|
||||
|
||||
# Start
|
||||
alias zs='zeus start'
|
||||
alias ztart='zeus start'
|
||||
|
||||
# Console
|
||||
alias zc='zeus console'
|
||||
alias zonsole='zeus console'
|
||||
|
||||
# Server
|
||||
alias zsr='zeus server'
|
||||
alias zerver='zeus server'
|
||||
|
||||
# Rake
|
||||
alias zr='zeus rake'
|
||||
alias zake='zeus rake'
|
||||
|
||||
# Generate
|
||||
alias zg='zeus generate'
|
||||
alias zenerate='zeus generate'
|
||||
|
||||
# Runner
|
||||
alias zrn='zeus runner'
|
||||
alias zunner='zeus runner'
|
||||
|
||||
# Cucumber
|
||||
alias zcu='zeus cucumber'
|
||||
alias zucumber='zeus cucumber'
|
||||
|
||||
# Test
|
||||
alias zt='zeus test'
|
||||
alias zest='zeus test'
|
||||
|
||||
alias zu='zeus test test/unit/*'
|
||||
alias zunits='zeus test test/unit/*'
|
||||
|
||||
alias zf='zeus test test/functional/*'
|
||||
alias zunctional='zeus test test/functional/*'
|
||||
|
||||
alias za='zeus test test/unit/*; zeus test test/functional/; zeus cucumber'
|
||||
alias zall='zeus test test/unit/*; zeus test test/functional/; zeus cucumber'
|
||||
|
||||
# Clean up crashed zeus instances.
|
||||
alias zsw='rm .zeus.sock'
|
||||
alias zweep='rm .zeus.sock'
|
||||
7
themes/3den.zsh-theme
Normal file
7
themes/3den.zsh-theme
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
PROMPT=$'%{$fg[white]%}$(~/.rvm/bin/rvm-prompt) %{$fg_bold[cyan]%}%~%{$reset_color%}$(git_prompt_info) %{$fg[cyan]%}%D{[%I:%M:%S]}\
|
||||
%{$fg_bold[green]%}%n$%{$reset_color%} '
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}("
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="*"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
36
themes/af-magic.zsh-theme
Normal file
36
themes/af-magic.zsh-theme
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# af-magic.zsh-theme
|
||||
#
|
||||
# Author: Andy Fleming
|
||||
# URL: http://andyfleming.com/
|
||||
# Repo: https://github.com/andyfleming/oh-my-zsh
|
||||
# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme
|
||||
#
|
||||
# Created on: June 19, 2012
|
||||
# Last modified on: June 20, 2012
|
||||
|
||||
|
||||
|
||||
if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
|
||||
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
|
||||
|
||||
# primary prompt
|
||||
PROMPT='$FG[237]------------------------------------------------------------%{$reset_color%}
|
||||
$FG[032]%~\
|
||||
$(git_prompt_info) \
|
||||
$FG[105]%(!.#.»)%{$reset_color%} '
|
||||
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
|
||||
RPS1='${return_code}'
|
||||
|
||||
|
||||
# color vars
|
||||
eval my_gray='$FG[237]'
|
||||
eval my_orange='$FG[214]'
|
||||
|
||||
# right prompt
|
||||
RPROMPT='$my_gray%n@%m%{$reset_color%}%'
|
||||
|
||||
# git settings
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
|
||||
115
themes/agnoster.zsh-theme
Normal file
115
themes/agnoster.zsh-theme
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# vim:ft=zsh ts=2 sw=2 sts=2
|
||||
#
|
||||
# agnoster's Theme - https://gist.github.com/3712874
|
||||
# A Powerline-inspired theme for ZSH
|
||||
#
|
||||
# # README
|
||||
#
|
||||
# In order for this theme to render correctly, you will need a
|
||||
# [Powerline-patched font](https://gist.github.com/1595572).
|
||||
#
|
||||
# In addition, I recommend the
|
||||
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
|
||||
# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app -
|
||||
# it has significantly better color fidelity.
|
||||
#
|
||||
# # Goals
|
||||
#
|
||||
# The aim of this theme is to only show you *relevant* information. Like most
|
||||
# prompts, it will only show git information when in a git working directory.
|
||||
# However, it goes a step further: everything from the current user and
|
||||
# hostname to whether the last call exited with an error to whether background
|
||||
# jobs are running in this shell will all be displayed automatically when
|
||||
# appropriate.
|
||||
|
||||
### Segment drawing
|
||||
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||
|
||||
CURRENT_BG='NONE'
|
||||
SEGMENT_SEPARATOR='⮀'
|
||||
|
||||
# Begin a segment
|
||||
# Takes two arguments, background and foreground. Both can be omitted,
|
||||
# rendering default background/foreground.
|
||||
prompt_segment() {
|
||||
local bg fg
|
||||
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||
echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
|
||||
else
|
||||
echo -n "%{$bg%}%{$fg%} "
|
||||
fi
|
||||
CURRENT_BG=$1
|
||||
[[ -n $3 ]] && echo -n $3
|
||||
}
|
||||
|
||||
# End the prompt, closing any open segments
|
||||
prompt_end() {
|
||||
if [[ -n $CURRENT_BG ]]; then
|
||||
echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||
else
|
||||
echo -n "%{%k%}"
|
||||
fi
|
||||
echo -n "%{%f%}"
|
||||
CURRENT_BG=''
|
||||
}
|
||||
|
||||
### Prompt components
|
||||
# Each component will draw itself, and hide itself if no information needs to be shown
|
||||
|
||||
# Context: user@hostname (who am I and where am I)
|
||||
prompt_context() {
|
||||
local user=`whoami`
|
||||
|
||||
if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
|
||||
prompt_segment black default "%(!.%{%F{yellow}%}.)$user@%m"
|
||||
fi
|
||||
}
|
||||
|
||||
# Git: branch/detached head, dirty status
|
||||
prompt_git() {
|
||||
local ref dirty
|
||||
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY='±'
|
||||
dirty=$(parse_git_dirty)
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"
|
||||
if [[ -n $dirty ]]; then
|
||||
prompt_segment yellow black
|
||||
else
|
||||
prompt_segment green black
|
||||
fi
|
||||
echo -n "${ref/refs\/heads\//⭠ }$dirty"
|
||||
fi
|
||||
}
|
||||
|
||||
# Dir: current working directory
|
||||
prompt_dir() {
|
||||
prompt_segment blue black '%~'
|
||||
}
|
||||
|
||||
# Status:
|
||||
# - was there an error
|
||||
# - am I root
|
||||
# - are there background jobs?
|
||||
prompt_status() {
|
||||
local symbols
|
||||
symbols=()
|
||||
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘"
|
||||
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
|
||||
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
|
||||
|
||||
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
|
||||
}
|
||||
|
||||
## Main prompt
|
||||
build_prompt() {
|
||||
RETVAL=$?
|
||||
prompt_status
|
||||
prompt_context
|
||||
prompt_dir
|
||||
prompt_git
|
||||
prompt_end
|
||||
}
|
||||
|
||||
PROMPT='%{%f%b%k%}$(build_prompt) '
|
||||
39
themes/fino-time.zsh-theme
Normal file
39
themes/fino-time.zsh-theme
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Fino-time theme by Aexander Berezovsky (http://berezovsky.me) based on Fino by Max Masnick (http://max.masnick.me)
|
||||
|
||||
# Use with a dark background and 256-color terminal!
|
||||
# Meant for people with RVM and git. Tested only on OS X 10.7.
|
||||
|
||||
# You can set your computer name in the ~/.box-name file if you want.
|
||||
|
||||
# Borrowing shamelessly from these oh-my-zsh themes:
|
||||
# bira
|
||||
# robbyrussell
|
||||
#
|
||||
# Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
|
||||
|
||||
function virtualenv_info {
|
||||
[ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
|
||||
}
|
||||
|
||||
function prompt_char {
|
||||
git branch >/dev/null 2>/dev/null && echo '±' && return
|
||||
echo '○'
|
||||
}
|
||||
|
||||
function box_name {
|
||||
[ -f ~/.box-name ] && cat ~/.box-name || hostname -s
|
||||
}
|
||||
|
||||
|
||||
local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}'
|
||||
local current_dir='${PWD/#$HOME/~}'
|
||||
local git_info='$(git_prompt_info)'
|
||||
|
||||
|
||||
PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} %D - %*
|
||||
╰─$(virtualenv_info)$(prompt_char) "
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔"
|
||||
|
|
@ -2,15 +2,14 @@ autoload -U add-zsh-hook
|
|||
autoload -Uz vcs_info
|
||||
|
||||
zstyle ':vcs_info:*' actionformats \
|
||||
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
|
||||
zstyle ':vcs_info:*' formats \
|
||||
'%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f '
|
||||
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
|
||||
zstyle ':vcs_info:*' formats '%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f '
|
||||
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
|
||||
zstyle ':vcs_info:*' enable git
|
||||
|
||||
add-zsh-hook precmd prompt_jnrowe_precmd
|
||||
add-zsh-hook precmd prompt_vcs
|
||||
|
||||
prompt_jnrowe_precmd () {
|
||||
prompt_vcs () {
|
||||
vcs_info
|
||||
|
||||
if [ "${vcs_info_msg_0_}" = "" ]; then
|
||||
|
|
@ -24,8 +23,16 @@ prompt_jnrowe_precmd () {
|
|||
fi
|
||||
}
|
||||
|
||||
function {
|
||||
if [[ -n "$SSH_CLIENT" ]]; then
|
||||
PROMPT_HOST=" ($HOST)"
|
||||
else
|
||||
PROMPT_HOST=''
|
||||
fi
|
||||
}
|
||||
|
||||
local ret_status="%(?:%{$fg_bold[green]%}Ξ:%{$fg_bold[red]%}%S↑%s%?)"
|
||||
|
||||
PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} '
|
||||
PROMPT='${ret_status}%{$fg[blue]%}${PROMPT_HOST}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} '
|
||||
|
||||
# vim: set ft=zsh ts=4 sw=4 et:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
|||
RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(~/.rvm/bin/rvm-prompt s i v g)%{$fg_bold[blue]%})%{$reset_color%} "
|
||||
else
|
||||
if which rbenv &> /dev/null; then
|
||||
RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} "
|
||||
RUBY_PROMPT_="%{$fg_bold[blue]%}rbenv:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} "
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ add-zsh-hook chpwd steeef_chpwd
|
|||
function steeef_precmd {
|
||||
if [[ -n "$PR_GIT_UPDATE" ]] ; then
|
||||
# check for untracked files or updated submodules, since vcs_info doesn't
|
||||
if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
|
||||
if git ls-files --other --exclude-standard --directory 2> /dev/null | grep -q "."; then
|
||||
PR_GIT_UPDATE=1
|
||||
FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ PROMPT='%{$fg[green]%} %% '
|
|||
# RPS1='%{$fg[blue]%}%~%{$reset_color%} '
|
||||
RPS1='%{$fg[white]%}%2~$(git_prompt_info) %{$fg_bold[blue]%}%m%{$reset_color%}'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[yellow]%}"
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[yellow]%}("
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ⚡%{$fg[yellow]%}"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ then
|
|||
fi
|
||||
|
||||
epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
|
||||
if [ $epoch_diff -gt 6 ]
|
||||
if [ $epoch_diff -gt 13 ]
|
||||
then
|
||||
if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
|
||||
then
|
||||
|
|
@ -32,9 +32,10 @@ then
|
|||
echo "[Oh My Zsh] Would you like to check for updates?"
|
||||
echo "Type Y to update oh-my-zsh: \c"
|
||||
read line
|
||||
if [ "$line" = Y ] || [ "$line" = y ]
|
||||
then
|
||||
if [ "$line" = Y ] || [ "$line" = y ]; then
|
||||
_upgrade_zsh
|
||||
else
|
||||
_update_zsh_update
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -5,7 +5,10 @@ then
|
|||
fi
|
||||
|
||||
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
|
||||
/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
||||
hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh || {
|
||||
echo "git not installed"
|
||||
exit
|
||||
}
|
||||
|
||||
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
||||
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue