Commit db90589c authored by Tristan Carel's avatar Tristan Carel
Browse files

Merge remote-tracking branch 'upstream/master' into emacs

Conflicts:
	plugins/emacs/emacs.plugin.zsh
	plugins/emacs/emacsclient.sh
parents 7066bf7c 57f04b92
alias rs='ruby script/rails server' # Rails 3 aliases, backwards-compatible with Rails 2.
alias rg='ruby script/rails generate'
alias rd='ruby script/rails destroy' function _rails_command () {
alias rp='ruby script/rails plugin' if [ -e "script/server" ]; then
ruby script/$@
else
ruby script/rails $@
fi
}
alias rc='_rails_command console'
alias rd='_rails_command destroy'
alias rdb='_rails_command dbconsole'
alias rdbm='rake db:migrate db:test:clone' alias rdbm='rake db:migrate db:test:clone'
alias rdbmr='rake db:migrate && rake db:migrate:redo' alias rg='_rails_command generate'
alias rc='ruby script/rails console' alias rp='_rails_command plugin'
alias rd='ruby script/rails server --debugger' alias rs='_rails_command server'
alias rsd='_rails_command server --debugger'
alias devlog='tail -f log/development.log' alias devlog='tail -f log/development.log'
#compdef redis-cli rec
#autoload
#redis cli completion, based off homebrew completion (ref. 2011-04-14)
local -a _1st_arguments
_1st_arguments=(
'append:append a value to a key'
'auth:authenticate to the server'
'bgrewriteeaof:asynchronously rewrite the append-only file'
'bgsave:asynchornously save the dataset to disk'
'blpop:remove and get the first element in a list, or block until one is available'
'brpop:remove and get the last element in a list, or block until one is available'
'brpoplpush:pop a value from a list, push it to another list and return it; or block until one is available'
# 'config get:get the value of a configuration parameter'
# 'config set:set a configuration parameter to the given value'
# 'config resetstat: reset the stats returned by INFO'
'dbsize:return the number of keys in the selected database'
# 'debug object:get debugging information about a key'
# 'debug setgfault:make the server crash'
'decr:decrement the integer value of a key by one'
'decrby:decrement the integet value of a key by the given number'
'del:delete a key'
'discard:discard all commands issued after MULTI'
'echo:echo the given string'
'exec:execute all commands issued after a MULTI'
'exists:determine if a key exists'
'expire:set the time to live for a key, in seconds'
'expireat:set the expiration for a key as a UNIX timestamp'
'flushall:remove all keys from all databases'
'flushdb:remove all keys from the current database'
'get:get the value of a key'
'getbit:returns the bit value at offset in the string value stored at key'
'getrange:get a substring of the string stored at a key'
'getset:set the string value of a key and return its old value'
'hdel:delete a hash field'
'hexists:determine if a hash field exists'
'hget:get the value of a hash field'
'hgetall:get all the fields and values in a hash'
'hincrby:increment the integer value of a hash field by the given number'
'hkeys:get all the fields in a hash'
'hlen:get the number of fields in a hash'
'hmget:get the values of all the given hash fields'
'hmset:set multiple hash fields to multiple values'
'hset:set the string value of a hash field'
'hsetnx:set the value of a hash field, only if the field does not exist'
'hvals:get all the values in a hash'
'incr:increment the integer value of a key by one'
'incrby:increment the integer value of a key by the given number'
'info:get information and statistics about the server'
'keys:find all keys matching the given pattern'
'lastsave:get the UNIX timestamp of the last successful save to disk'
'lindex:get an element from a list by its index'
'linsert:insert an element before or after another element in a list'
'llen:get the length of a list'
'lpop:remove and get the first element in a list'
'lpush:prepend a value to a list'
'lpushx:prepend a value to a list, only if the list exists'
'lrange:get a range of elements from a list'
'lrem:remove elements from a list'
'lset:set the value of an element in a list by its index'
'ltrim:trim a list to the specified range'
'mget:get the values of all the given keys'
'monitor:listen for all requests received by the server in real time'
'move:move a key to another database'
'mset:set multiple keys to muliple values'
'msetnx:set multiple keys tom ultiple values, only if none of the keys exist'
'multi:mark the start of a transaction block'
'object:inspect the internals of Redis objects'
'persist:remove the expiration from a key'
'ping:ping the server'
'psubscribe:listen for messages published to channels matching the given patterns'
'publish:post a message to a channel'
'punsubscribe:stop listening for messages posted to channels matching the given patterns'
'quit:close the connection'
'randomkey:return a random key from the keyspace'
'rename:rename a key'
'renamenx:rename a key, only if the new key does not exist'
'rpop:remove and get the last element in a list'
'rpoplpush:remove the last element in a list, append it to another list and return it'
'rpush:append a value to a list'
'rpushx:append a value to a list, only if the list exists'
'sadd:add a member to a set'
'save:synchronously save the dataset to disk'
'scard:get the number of members in a set'
'sdiff:subtract multiple sets'
'sdiffstore:subtract multiple sets and store the resulting set in a key'
'select:change the selected database for the current connection'
'set:set the string value of a key'
'setbit:sets or clears the bit at offset in the string value stored at key'
'setex:set the value and expiration of a key'
'setnx:set the value of a key, only if the key does not exist'
'setrange:overwrite part of a string at key starting at the specified offset'
'shutdown:synchronously save the dataset to disk and then shut down the server'
'sinter:intersect multiple sets'
'sinterstore:intersect multiple sets and store the resulting set in a key'
'sismember:determine if a given value is a member of a set'
'slaveof:make the server a slave of another instance, or promote it as master'
'smembers:get all the members in a set'
'smove:move a member from one set to another'
'sort:sort the elements in a list, set or sorted set'
'spop:remove and return a random member from a set'
'srandmember:get a random member from a set'
'srem:remove a member from a set'
'strlen:get the length of the value stored in a key'
'subscribe:listen for messages published to the given channels'
'sunion:add multiple sets'
'sunionstore:add multiple sets and store the resulting set in a key'
'ttl:get the time to live for a key'
'type:determine the type stored at key'
'unsubscribe:stop listening for messages posted to the given channels'
'unwatch:forget about all watched keys'
'watch:watch the given keys to determine execution of the MULTI/EXEC block'
'zadd:add a member to a sorted set, or update its score if it already exists'
'zcard:get the number of members in a sorted set'
'zcount:count the members in a sorted set with scores within the given values'
'zincrby:increment the score of a member in a sorted set'
'zinterstore:intersect multiple sorted sets and store the resulting sorted set in a new key'
'zrange:return a range of members in a sorted set, by index'
'zrangebyscore:return a range of members in a sorted set, by score'
'zrank:determine the index of a member in a sorted set'
'zrem:remove a member from a sorted set'
'zremrangebyrank:remove all members in a sorted set within the given indexes'
'zremrangebyscore:remove all members in a sorted set within the given scores'
'zrevrange:return a range of membrs in a sorted set, by index, with scores ordered from high to low'
'zrevrangebyscore:return a range of members in a sorted set, by score, with scores ordered from high to low'
'zrevrank:determine the index of a member in a sorted set, with scores ordered from high to low'
'zscore:get the score associated with the given member in a sorted set'
'zunionstore:add multiple sorted sets and store te resulting sorted set in a new key'
)
local expl
_arguments \
'(-v --version)'{-v,--version}'[show version]' \
'(-h --help)'{-h,--help}'[show help]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "redis-cli subcommand" _1st_arguments
return
fi
\ No newline at end of file
# TODO: Make this compatible with rvm.
# Run sudo gem on the system ruby, not the active ruby.
alias sgem='sudo gem' alias sgem='sudo gem'
# Find ruby file # Find ruby file
alias rfind='find . -name *.rb | xargs grep -n' alias rfind='find . -name *.rb | xargs grep -n'
\ No newline at end of file
#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
alias rubies='rvm list rubies'
alias gemsets='rvm gemset list'
local ruby18='ruby-1.8.7-p334'
local ruby19='ruby-1.9.2-p180'
function rb18 {
if [ -z "$1" ]; then
rvm use "$ruby18"
else
rvm use "$ruby18@$1"
fi
}
_rb18() {compadd `ls -1 $rvm_path/gems | grep "^$ruby18@" | sed -e "s/^$ruby18@//" | awk '{print $1}'`}
compdef _rb18 rb18
function rb19 {
if [ -z "$1" ]; then
rvm use "$ruby19"
else
rvm use "$ruby19@$1"
fi
}
_rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`}
compdef _rb19 rb19
function rvm-update {
rvm get head
rvm reload # TODO: Reload rvm completion?
}
# TODO: Make this usable w/o rvm.
function gems {
local current_ruby=`rvm-prompt i v p`
local current_gemset=`rvm-prompt g`
gem list $@ | sed \
-Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
-Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
}
# Based on code from Joseph M. Reagle #
# http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html # INSTRUCTIONS
#
# To enabled agent forwarding support add the following to
# your .zshrc file:
#
# zstyle :omz:plugins:ssh-agent agent-forwarding on
#
# To load multiple identies use the identities style, For
# example:
#
# zstyle :omz:plugins:ssh-agent id_rsa id_rsa2 id_github
#
#
# CREDITS
#
# Based on code from Joseph M. Reagle
# http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
#
# Agent forwarding support based on ideas from
# Florent Thoumie and Jonas Pfenniger
#
local SSH_ENV=$HOME/.ssh/environment-$HOST local _plugin__ssh_env=$HOME/.ssh/environment-$HOST
local _plugin__forwarding
function start_agent { function _plugin__start_agent()
/usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} {
chmod 600 ${SSH_ENV} local -a identities
. ${SSH_ENV} > /dev/null
/usr/bin/ssh-add; # start ssh-agent and setup environment
/usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${_plugin__ssh_env}
chmod 600 ${_plugin__ssh_env}
. ${_plugin__ssh_env} > /dev/null
# load identies
zstyle -a :omz:plugins:ssh-agent identities identities
echo starting...
/usr/bin/ssh-add $HOME/.ssh/${^identities}
} }
# Source SSH settings, if applicable # test if agent-forwarding is enabled
zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then
# Add a nifty symlink for screen/tmux if agent forwarding
[[ -L $SSH_AUTH_SOCK ]] || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen
if [ -f "${SSH_ENV}" ]; then elif [ -f "${_plugin__ssh_env}" ]; then
. ${SSH_ENV} > /dev/null # Source SSH settings, if applicable
. ${_plugin__ssh_env} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent; _plugin__start_agent;
} }
else else
start_agent; _plugin__start_agent;
fi fi
# tidy up after ourselves
unfunction _plugin__start_agent
unset _plugin__forwarding
unset _plugin__ssh_env
function svn_prompt_info { function svn_prompt_info {
if [[ -d .svn ]]; then if [ in_svn ]; then
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$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
fi fi
...@@ -13,7 +13,7 @@ function in_svn() { ...@@ -13,7 +13,7 @@ function in_svn() {
} }
function svn_get_repo_name { function svn_get_repo_name {
if [ is_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" | sed "s/\/.*$//" svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//"
...@@ -21,14 +21,14 @@ function svn_get_repo_name { ...@@ -21,14 +21,14 @@ function svn_get_repo_name {
} }
function svn_get_rev_nr { function svn_get_rev_nr {
if [ is_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
fi fi
} }
function svn_dirty_choose { function svn_dirty_choose {
if [ is_svn ]; then if [ in_svn ]; then
s=$(svn status 2>/dev/null) s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null)
if [ $s ]; then if [ $s ]; then
echo $1 echo $1
else else
...@@ -39,4 +39,4 @@ function svn_dirty_choose { ...@@ -39,4 +39,4 @@ function svn_dirty_choose {
function svn_dirty { function svn_dirty {
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
} }
\ No newline at end of file
#compdef task
#
# zsh completion for taskwarrior
#
# Copyright 2010 - 2011 Johannes Schlatow
# Copyright 2009 P.C. Shyamshankar
# All rights reserved.
#
# This script is part of the taskwarrior project.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the
#
# Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor,
# Boston, MA
# 02110-1301
# USA
#
typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers
_task_projects=($(task _projects))
_task_tags=($(task _tags))
_task_ids=($(task _ids))
_task_config=($(task _config))
_task_modifiers=(
'before' \
'after' \
'none' \
'any' \
'is' \
'isnt' \
'has' \
'hasnt' \
'startswith' \
'endswith' \
'word' \
'noword'
)
_task_cmds=($(task _commands))
_task_zshcmds=( ${(f)"$(task _zshcommands)"} )
_task_idCmds=(
'append' \
'prepend' \
'annotate' \
'denotate' \
'edit' \
'duplicate' \
'info' \
'start' \
'stop' \
'done'
)
_task_idCmdsDesc=(
'append:Appends more description to an existing task.' \
'prepend:Prepends more description to an existing task.' \
'annotate:Adds an annotation to an existing task.' \
'denotate:Deletes an annotation of an existing task.' \
'edit:Launches an editor to let you modify a task directly.' \
'duplicate:Duplicates the specified task, and allows modifications.' \
'info:Shows all data, metadata for specified task.' \
'start:Marks specified task as started.' \
'stop:Removes the start time from a task.' \
'done:Marks the specified task as completed.'
)
_task() {
_arguments -s -S \
"*::task command:_task_commands"
return 0
}
local -a reply args word
word=$'[^\0]#\0'
# priorities
local -a task_priorities
_regex_words values 'task priorities' \
'H:High' \
'M:Middle' \
'L:Low'
task_priorities=("$reply[@]")
# projects
local -a task_projects
task_projects=(
/"$word"/
":values:task projects:compadd -a _task_projects"
)
local -a _task_dates
_regex_words values 'task dates' \
'tod*ay:Today' \
'yes*terday:Yesterday' \
'tom*orrow:Tomorrow' \
'sow:Start of week' \
'soww:Start of work week' \
'socw:Start of calendar week' \
'som:Start of month' \
'soy:Start of year' \
'eow:End of week' \
'eoww:End of work week' \
'eocw:End of calendar week' \
'eom:End of month' \
'eoy:End of year' \
'mon:Monday' \
'tue:Tuesday'\
'wed:Wednesday' \
'thu:Thursday' \
'fri:Friday' \
'sat:Saturday' \
'sun:Sunday'
_task_dates=("$reply[@]")
local -a _task_reldates
_regex_words values 'task reldates' \
'hrs:n hours' \
'day:n days' \
'1st:first' \
'2nd:second' \
'3rd:third' \
'th:4th, 5th, etc.' \
'wks:weeks'
_task_reldates=("$reply[@]")
task_dates=(
\( "$_task_dates[@]" \|
\( /$'[0-9][0-9]#'/- \( "$_task_reldates[@]" \) \)
\)
)
_regex_words values 'task frequencies' \
'daily:Every day' \
'day:Every day' \
'weekdays:Every day skipping weekend days' \
'weekly:Every week' \
'biweekly:Every two weeks' \
'fortnight:Every two weeks' \
'quarterly:Every three months' \
'semiannual:Every six months' \
'annual:Every year' \
'yearly:Every year' \
'biannual:Every two years' \
'biyearly:Every two years'
_task_freqs=("$reply[@]")
local -a _task_frequencies
_regex_words values 'task frequencies' \
'd:days' \
'w:weeks' \
'q:quarters' \
'y:years'
_task_frequencies=("$reply[@]")
task_freqs=(
\( "$_task_freqs[@]" \|
\( /$'[0-9][0-9]#'/- \( "$_task_frequencies[@]" \) \)
\)
)
# attributes
local -a task_attributes
_regex_words -t ':' default 'task attributes' \
'pro*ject:Project name:$task_projects' \
'du*e:Due date:$task_dates' \
'wa*it:Date until task becomes pending:$task_dates' \
're*cur:Recurrence frequency:$task_freqs' \
'pri*ority:priority:$task_priorities' \
'un*til:Recurrence end date:$task_dates' \
'fg:Foreground color' \
'bg:Background color' \
'li*mit:Desired number of rows in report'
task_attributes=("$reply[@]")
args=(
\( "$task_attributes[@]" \|
\( /'(project|due|wait|recur|priority|until|fg|bg|limit).'/- \( /$'[^:]#:'/ ":default:modifiers:compadd -S ':' -a _task_modifiers" \) \) \|
\( /'(rc).'/- \( /$'[^:]#:'/ ":arguments:config:compadd -S ':' -a _task_config" \) \) \|
\( /'(+|-)'/- \( /"$word"/ ":values:remove tag:compadd -a _task_tags" \) \) \|
\( /"$word"/ \)
\) \#
)
_regex_arguments _task_attributes "${args[@]}"
## task commands
# default completion
(( $+functions[_task_default] )) ||
_task_default() {
_task_attributes "$@"
}
# commands expecting an ID
(( $+functions[_task_id] )) ||
_task_id() {
if (( CURRENT < 3 )); then
# update IDs
_task_zshids=( ${(f)"$(task _zshids)"} )
_describe -t values 'task IDs' _task_zshids
else
_task_attributes "$@"
fi
}
# merge completion
(( $+functions[_task_merge] )) ||
_task_merge() {
# TODO match URIs in .taskrc
_files
}
# push completion
(( $+functions[_task_push] )) ||
_task_push() {
# TODO match URIs in .taskrc
_files
}
# pull completion
(( $+functions[_task_pull] )) ||
_task_pull() {
# TODO match URIs in .taskrc
_files
}
# modify (task [0-9]* ...) completion
(( $+functions[_task_modify] )) ||
_task_modify() {
_describe -t commands 'task command' _task_idCmdsDesc
_task_attributes "$@"
}
## first level completion => task sub-command completion
(( $+functions[_task_commands] )) ||
_task_commands() {
local cmd ret=1
if (( CURRENT == 1 )); then
# update IDs
_task_zshids=( ${(f)"$(task _zshids)"} )
_describe -t commands 'task command' _task_zshcmds
_describe -t values 'task IDs' _task_zshids
# TODO match more than one ID
elif [[ $words[1] =~ ^[0-9]*$ ]] then
_call_function ret _task_modify
return ret
else
# local curcontext="${curcontext}"
# cmd="${_task_cmds[(r)$words[1]:*]%%:*}"
cmd="${_task_cmds[(r)$words[1]]}"
idCmd="${(M)_task_idCmds[@]:#$words[1]}"
if (( $#cmd )); then
# curcontext="${curcontext%:*:*}:task-${cmd}"
if (( $#idCmd )); then
_call_function ret _task_id
else
_call_function ret _task_${cmd} ||
_call_function ret _task_default ||
_message "No command remaining."
fi
else
_message "Unknown subcommand ${cmd}"
fi
return ret
fi
}
################################################################################
# Author: Pete Clark
# Email: pete[dot]clark[at]gmail[dot]com
# Version: 0.1 (05/24/2011)
# License: WTFPL<http://sam.zoy.org/wtfpl/>
#
# This oh-my-zsh plugin adds smart tab completion for
# TaskWarrior<http://taskwarrior.org/>. It uses the zsh tab completion
# script (_task) distributed with TaskWarrior for the completion definitions.
#
# Typing task[tabtab] will give you a list of current tasks, task 66[tabtab]
# gives a list of available modifications for that task, etc.
################################################################################
zstyle ':completion:*:*:task:*' verbose yes
zstyle ':completion:*:*:task:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:*:task:*' group-name ''
alias t=task
compdef _task t=task
alias et='mate .'
alias ett='mate app config lib db public spec test Rakefile Capfile Todo'
alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo'
alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo'
# TextMate # Edit Ruby app in TextMate
alias et='mate . &'
alias ett='mate app config lib db public spec test Rakefile Capfile Todo &'
alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
# Editor Ruby file in TextMate
alias mr='mate CHANGELOG app config db lib public script spec test' alias mr='mate CHANGELOG app config db lib public script spec test'
function tm() { function tm() {
......
#compdef thor
#autoload
compadd `thor list | grep thor | cut -d " " -f 2`
fpath=($ZSH/plugins/vagrant $fpath)
autoload -U compinit
compinit -i
function vundle-init () {
if [ ! -d ~/.vim/bundle/vundle/ ]
then
mkdir -p ~/.vim/bundle/vundle/
fi
if [ ! -d ~/.vim/bundle/vundle/.git/ ]
then
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n"
fi
}
function vundle () {
vundle-init
vim -c "execute \"BundleInstall\" | q | q"
}
function vundle-update () {
vundle-init
vim -c "execute \"BundleInstall!\" | q | q"
}
## Aliases
alias ys="yum search" # search package
alias yp="yum info" # show package info
alias yl="yum list" # list packages
alias yli="yum list installed" # print all installed packages
alias yu="sudo yum update" # upgrate packages
alias yi="sudo yum install" # install package
alias yr="sudo yum remove" # remove package
alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
alias yc="sudo yum clean all" # clean cache
# Path to your oh-my-zsh configuration. # Path to your oh-my-zsh configuration.
export ZSH=$HOME/.oh-my-zsh ZSH=$HOME/.oh-my-zsh
# Set to the name theme to load. # Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/ # Look in ~/.oh-my-zsh/themes/
export ZSH_THEME="robbyrussell" # Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="robbyrussell"
# Set to this to use case-sensitive completion # Set to this to use case-sensitive completion
# export CASE_SENSITIVE="true" # CASE_SENSITIVE="true"
# Comment this out to disable weekly auto-update checks # Comment this out to disable weekly auto-update checks
# export DISABLE_AUTO_UPDATE="true" # DISABLE_AUTO_UPDATE="true"
# Uncomment following line if you want to disable colors in ls # Uncomment following line if you want to disable colors in ls
# export DISABLE_LS_COLORS="true" # DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title. # Uncomment following line if you want to disable autosetting terminal title.
# export DISABLE_AUTO_TITLE="true" # DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Example format: plugins=(rails git textmate ruby lighthouse) # Example format: plugins=(rails git textmate ruby lighthouse)
......
PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(git_prompt_info) PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(check_git_prompt_info)
$ ' $ '
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}" ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}"
...@@ -16,6 +16,29 @@ ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" ...@@ -16,6 +16,29 @@ ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}"
ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}"
ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}" ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}"
# Git sometimes goes into a detached head state. git_prompt_info doesn't
# return anything in this case. So wrap it in another function and check
# for an empty string.
function check_git_prompt_info() {
if git rev-parse --git-dir > /dev/null 2>&1; then
if [[ -z $(git_prompt_info) ]]; then
echo "%{$fg[magenta]%}detached-head%{$reset_color%})"
else
echo "$(git_prompt_info)"
fi
fi
}
# Determine if we are using a gemset.
function rvm_gemset() {
GEMSET=`rvm gemset list | grep '=>' | cut -b4-`
if [[ -n $GEMSET ]]; then
echo "%{$fg[yellow]%}$GEMSET%{$reset_color%}|"
fi
}
# Determine the time since last commit. If branch is clean, # Determine the time since last commit. If branch is clean,
# use a neutral color, otherwise colors will vary according to time. # use a neutral color, otherwise colors will vary according to time.
function git_time_since_commit() { function git_time_since_commit() {
...@@ -49,15 +72,15 @@ function git_time_since_commit() { ...@@ -49,15 +72,15 @@ function git_time_since_commit() {
fi fi
if [ "$HOURS" -gt 24 ]; then if [ "$HOURS" -gt 24 ]; then
echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|" echo "($(rvm_gemset)$COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
elif [ "$MINUTES" -gt 60 ]; then elif [ "$MINUTES" -gt 60 ]; then
echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|" echo "($(rvm_gemset)$COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
else else
echo "($COLOR${MINUTES}m%{$reset_color%}|" echo "($(rvm_gemset)$COLOR${MINUTES}m%{$reset_color%}|"
fi fi
else else
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
echo "($COLOR~|" echo "($(rvm_gemset)$COLOR~|"
fi fi
fi fi
} }
local user='%{$fg[magenta]%}%n@%{$fg[magenta]%}%m%{$reset_color%}'
local pwd='%{$fg[blue]%}%~%{$reset_color%}'
local rvm='%{$fg[green]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
local return_code='%(?..%{$fg[red]%}%? ↵%{$reset_color%})'
local git_branch='$(git_prompt_status)%{$reset_color%}$(git_prompt_info)%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
PROMPT="${user} ${pwd}$ "
RPROMPT="${return_code} ${git_branch} ${rvm}"
...@@ -3,7 +3,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" ...@@ -3,7 +3,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}' local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}' local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
local rvm_ruby='%{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v g)›%{$reset_color%}' local rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
local git_branch='$(git_prompt_info)%{$reset_color%}' local git_branch='$(git_prompt_info)%{$reset_color%}'
PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch}
......
# https://github.com/blinks zsh theme
function _prompt_char() {
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
echo "%{%F{blue}%}±%{%f%k%b%}"
else
echo ' '
fi
}
ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{black}%B%F{green}%}]"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
PROMPT='%{%f%k%b%}
%{%K{black}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{black}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%}
%{%K{black}%}$(_prompt_char)%{%K{black}%} %#%{%f%k%b%} '
RPROMPT='!%{%B%F{cyan}%}%!%{%f%k%b%}'
# CRUNCH - created from Steve Eley's cat waxing.
# Initially hacked from the Dallas theme. Thanks, Dallas Reedy.
#
# This theme assumes you do most of your oh-my-zsh'ed "colorful" work at a single machine,
# and eschews the standard space-consuming user and hostname info. Instead, only the
# things that vary in my own workflow are shown:
#
# * The time (not the date)
# * The RVM version and gemset (omitting the 'ruby' name if it's MRI)
# * The current directory
# * The Git branch and its 'dirty' state
#
# Colors are at the top so you can mess with those separately if you like.
# For the most part I stuck with Dallas's.
CRUNCH_BRACKET_COLOR="%{$fg[white]%}"
CRUNCH_TIME_COLOR="%{$fg[yellow]%}"
CRUNCH_RVM_COLOR="%{$fg[magenta]%}"
CRUNCH_DIR_COLOR="%{$fg[cyan]%}"
CRUNCH_GIT_BRANCH_COLOR="%{$fg[green]%}"
CRUNCH_GIT_CLEAN_COLOR="%{$fg[green]%}"
CRUNCH_GIT_DIRTY_COLOR="%{$fg[red]%}"
# These Git variables are used by the oh-my-zsh git_prompt_info helper:
ZSH_THEME_GIT_PROMPT_PREFIX="$CRUNCH_BRACKET_COLOR:$CRUNCH_GIT_BRANCH_COLOR"
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_CLEAN=" $CRUNCH_GIT_CLEAN_COLOR✓"
ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗"
# Our elements:
CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}"
CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}"
CRUNCH_DIR_="$CRUNCH_DIR_COLOR%~\$(git_prompt_info) "
CRUNCH_PROMPT="$CRUNCH_BRACKET_COLOR➭ "
# Put it all together!
PROMPT="$CRUNCH_TIME_$CRUNCH_RVM_$CRUNCH_DIR_$CRUNCH_PROMPT%{$reset_color%}"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment