From 60b560fc9ace116cde7e56954f386b1098751648 Mon Sep 17 00:00:00 2001 From: Florian Walch Date: Fri, 15 Oct 2010 16:50:39 +0200 Subject: Added gpg-agent plugin Based on ssh-agent plugin. --- plugins/gpg-agent/gpg-agent.plugin.zsh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 plugins/gpg-agent/gpg-agent.plugin.zsh (limited to 'plugins') diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh new file mode 100644 index 000000000..8cc71fd57 --- /dev/null +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -0,0 +1,26 @@ +# Based on ssh-agent code + +local GPG_ENV=$HOME/.gnupg/gpg-agent.env + +function start_agent { + /usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV} > /dev/null + chmod 600 ${GPG_ENV} + . ${GPG_ENV} > /dev/null +} + +# Source GPG agent settings, if applicable +if [ -f "${GPG_ENV}" ]; then + . ${GPG_ENV} > /dev/null + ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || { + start_agent; + } +else + start_agent; +fi + +export GPG_AGENT_INFO +export SSH_AUTH_SOCK +export SSH_AGENT_PID + +GPG_TTY=$(tty) +export GPG_TTY -- cgit v1.2.3-70-g09d2 From bdaf872ce6e411f881e5e6138fc61a9c1645e67a Mon Sep 17 00:00:00 2001 From: Claus Witt Date: Wed, 17 Nov 2010 11:17:03 +0100 Subject: Removed the echo statement - no need for that. --- plugins/phing/phing.plugin.zsh | 1 - 1 file changed, 1 deletion(-) (limited to 'plugins') diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh index 80e334629..8f4adca08 100644 --- a/plugins/phing/phing.plugin.zsh +++ b/plugins/phing/phing.plugin.zsh @@ -10,7 +10,6 @@ _phing_does_target_list_need_generating () { _phing () { if [ -f build.xml ]; then if _phing_does_target_list_need_generating; then - echo "\nGenerating .phing_targets..." > /dev/stderr phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets fi compadd `cat .phing_targets` -- cgit v1.2.3-70-g09d2 From fa7036b4eef177f25478091e660fca52b9ac725d Mon Sep 17 00:00:00 2001 From: Claus Witt Date: Thu, 25 Nov 2010 21:48:07 +0100 Subject: Added ant plugin --- plugins/ant/ant.plugin.zsh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/ant/ant.plugin.zsh (limited to 'plugins') diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh new file mode 100644 index 000000000..0544ac92c --- /dev/null +++ b/plugins/ant/ant.plugin.zsh @@ -0,0 +1,19 @@ +_ant_does_target_list_need_generating () { + if [ ! -f .ant_targets ]; then return 0; + else + accurate=$(stat -f%m .ant_targets) + changed=$(stat -f%m build.xml) + return $(expr $accurate '>=' $changed) + fi +} + +_ant () { + if [ -f build.xml ]; then + if _ant_does_target_list_need_generating; then + sed -n '/ .ant_targets + fi + compadd `cat .ant_targets` + fi +} + +compdef _ant ant -- cgit v1.2.3-70-g09d2 From 7f69551498a78a6b30d706c89808fcd2ba000045 Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Wed, 23 Feb 2011 02:56:25 +1100 Subject: Add tab completion for rvm. --- plugins/rvm/_rvm | 147 +++++++++++++++++++++++++++++++++++++++++++++ plugins/rvm/rvm.plugin.zsh | 3 + 2 files changed, 150 insertions(+) create mode 100644 plugins/rvm/_rvm create mode 100644 plugins/rvm/rvm.plugin.zsh (limited to 'plugins') diff --git a/plugins/rvm/_rvm b/plugins/rvm/_rvm new file mode 100644 index 000000000..bba5304a0 --- /dev/null +++ b/plugins/rvm/_rvm @@ -0,0 +1,147 @@ +#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 diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh new file mode 100644 index 000000000..ef934d547 --- /dev/null +++ b/plugins/rvm/rvm.plugin.zsh @@ -0,0 +1,3 @@ +fpath=($ZSH/plugins/rvm $fpath) +autoload -U compinit +compinit -i -- cgit v1.2.3-70-g09d2 From d03a6176aacd583993c02c7e837d10751c431875 Mon Sep 17 00:00:00 2001 From: Sankara Rameswaran Date: Wed, 2 Mar 2011 15:20:43 +0530 Subject: Lein completion --- plugins/lein/lein.plugin.zsh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugins/lein/lein.plugin.zsh (limited to 'plugins') diff --git a/plugins/lein/lein.plugin.zsh b/plugins/lein/lein.plugin.zsh new file mode 100644 index 000000000..19af3556a --- /dev/null +++ b/plugins/lein/lein.plugin.zsh @@ -0,0 +1,27 @@ +function _lein_commands() { + local ret=1 state + _arguments ':subcommand:->subcommand' && ret=0 + + case $state in + subcommand) + subcommands=( + "clean:remove compiled files and dependencies from project" + "compile:ahead-of-time compile the project" + "deps:download and install all dependencies" + "help:display a list of tasks or help for a given task" + "install:install the project and its dependencies in your local repository" + "jar:create a jar file containing the compiled .class files" + "new:create a new project skeleton" + "pom:write a pom.xml file to disk for maven interop" + "test:run the project's tests" + "uberjar:Create a jar including the contents of each of deps" + "upgrade:upgrade leiningen to the latest stable release" + "version:print leiningen's version" + ) + _describe -t subcommands 'leiningen subcommands' subcommands && ret=0 + esac + + return ret +} + +compdef _lein_commands lein -- cgit v1.2.3-70-g09d2 From d5ce689a0c10f71967dcc163cd66ef9bd2778416 Mon Sep 17 00:00:00 2001 From: Daniel Wehner Date: Sat, 26 Mar 2011 15:06:30 +0100 Subject: Add a plugin to support kate the kde texteditor --- plugins/kate/kate.plugin.zsh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/kate/kate.plugin.zsh (limited to 'plugins') diff --git a/plugins/kate/kate.plugin.zsh b/plugins/kate/kate.plugin.zsh new file mode 100644 index 000000000..eb16522ac --- /dev/null +++ b/plugins/kate/kate.plugin.zsh @@ -0,0 +1,9 @@ + +# Kate +# Start kate always silent +alias kate='kate >/dev/null 2>&1' + +function kt () { + cd $1 + kate $1 +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 57f55e69ed967e93c0fd44a6a7e470781eb38029 Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 13:50:05 +0200 Subject: Zsh will now complete git aliases with git stuff --- plugins/git/git.plugin.zsh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 71a62819b..fc4e56fac 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -1,19 +1,34 @@ # Aliases alias g='git' +compdef g=git alias gst='git status' +compdef gst=git alias gl='git pull' +compdef gl=git alias gup='git fetch && git rebase' +compdef gup=git alias gp='git push' +compdef gp=git alias gd='git diff | mate' +compdef gd=git alias gdv='git diff -w "$@" | vim -R -' +compdef gdv=git alias gc='git commit -v' +compdef gc=git alias gca='git commit -v -a' +compdef gca=git alias gco='git checkout' +compdef gco=git alias gb='git branch' +compdef gb=git alias gba='git branch -a' +compdef gba=git alias gcount='git shortlog -sn' +compdef gcount=git alias gcp='git cherry-pick' +compdef gcp=git alias glg='git log --stat --max-count=5' +compdef glg=git # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' @@ -29,5 +44,8 @@ function current_branch() { # these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' +compdef ggpull=git alias ggpush='git push origin $(current_branch)' +compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' +compdef ggpnp=git -- cgit v1.2.3-70-g09d2 From 2e9492969b0ea90932ad3f4298330b75ef8cf2ce Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 15:43:39 +0200 Subject: Completions are git subdommand-aware now --- plugins/git/git.plugin.zsh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index fc4e56fac..8470c28a4 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -2,15 +2,16 @@ alias g='git' compdef g=git alias gst='git status' -compdef gst=git +compdef _git gst=git-status alias gl='git pull' -compdef gl=git +compdef _git gl=git-pull alias gup='git fetch && git rebase' compdef gup=git alias gp='git push' -compdef gp=git +compdef _git gp=git-push alias gd='git diff | mate' -compdef gd=git +# WTF is mate?? +compdef _git gd=git-diff alias gdv='git diff -w "$@" | vim -R -' compdef gdv=git alias gc='git commit -v' @@ -18,20 +19,21 @@ compdef gc=git alias gca='git commit -v -a' compdef gca=git alias gco='git checkout' -compdef gco=git +compdef _git gco=git-checkout alias gb='git branch' -compdef gb=git +compdef _git gb=git-branch alias gba='git branch -a' compdef gba=git alias gcount='git shortlog -sn' compdef gcount=git alias gcp='git cherry-pick' -compdef gcp=git +compdef _git gcp=git-cherry-pick alias glg='git log --stat --max-count=5' -compdef glg=git +compdef _git glg=git-log # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' +compdef git-svn-dcommit-push=git # # Will return the current branch name -- cgit v1.2.3-70-g09d2 From 4cd4167c8d988656eed4896d6d1343e311ce078c Mon Sep 17 00:00:00 2001 From: Jakub Nawalaniec Date: Sun, 3 Apr 2011 21:28:19 +0200 Subject: Further git completion improovements In detail: gup - now completes with remotes like git fetch would gdv - got git diff completions gc/gca - now zsh will suggest files in staging area gba - suggestions as for git branch --- plugins/git/git.plugin.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8470c28a4..9fe7a6467 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -6,24 +6,24 @@ compdef _git gst=git-status alias gl='git pull' compdef _git gl=git-pull alias gup='git fetch && git rebase' -compdef gup=git +compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push alias gd='git diff | mate' # WTF is mate?? compdef _git gd=git-diff alias gdv='git diff -w "$@" | vim -R -' -compdef gdv=git +compdef _git gdv=git-diff alias gc='git commit -v' -compdef gc=git +compdef _git gc=git-commit alias gca='git commit -v -a' -compdef gca=git +compdef _git gca=git-commit alias gco='git checkout' compdef _git gco=git-checkout alias gb='git branch' compdef _git gb=git-branch alias gba='git branch -a' -compdef gba=git +compdef _git gba=git-branch alias gcount='git shortlog -sn' compdef gcount=git alias gcp='git cherry-pick' -- cgit v1.2.3-70-g09d2 From 993e05da50543b9c2dcc5e4fedb93afd1c8b020c Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Fri, 8 Apr 2011 10:12:22 -0400 Subject: Replace redundant calls to compinit with a single call. --- lib/completion.zsh | 3 --- lib/key-bindings.zsh | 2 -- oh-my-zsh.sh | 4 ++++ plugins/brew/brew.plugin.zsh | 2 -- plugins/cpanm/cpanm.plugin.zsh | 2 -- plugins/gem/gem.plugin.zsh | 2 -- plugins/github/github.plugin.zsh | 2 -- plugins/macports/macports.plugin.zsh | 2 -- plugins/pip/pip.plugin.zsh | 2 -- plugins/vagrant/vagrant.plugin.zsh | 2 -- 10 files changed, 4 insertions(+), 19 deletions(-) (limited to 'plugins') diff --git a/lib/completion.zsh b/lib/completion.zsh index e8e9776a5..3c5a41e14 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -9,9 +9,6 @@ setopt always_to_end WORDCHARS='' -autoload -U compinit -compinit -i - zmodload -i zsh/complist ## case-insensitive (all),partial-word and then substring completion diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 7196a88ff..c7ad907d7 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -1,6 +1,4 @@ # TODO: Explain what some of this does.. -autoload -U compinit -compinit -i bindkey -e bindkey '\ew' kill-region diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 291772dfe..805e92428 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -17,6 +17,10 @@ for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" +# Load and run compinit +autoload -U compinit +compinit -i + # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" = "true" ] then diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 353a18942..079c0fba0 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,4 +1,2 @@ # add brew completion function to path fpath=($ZSH/plugins/brew $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/cpanm/cpanm.plugin.zsh b/plugins/cpanm/cpanm.plugin.zsh index af52d3e8b..8425b5ad8 100644 --- a/plugins/cpanm/cpanm.plugin.zsh +++ b/plugins/cpanm/cpanm.plugin.zsh @@ -1,4 +1,2 @@ # add cpanm completion function to path fpath=($ZSH/plugins/cpanm $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh index d4e5c6584..cdfad7ad6 100644 --- a/plugins/gem/gem.plugin.zsh +++ b/plugins/gem/gem.plugin.zsh @@ -1,4 +1,2 @@ # add gem completion function to path fpath=($ZSH/plugins/gem $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index c23504b85..0858783cc 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,4 +1,2 @@ # add github completion function to path fpath=($ZSH/plugins/github $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index cbbc49265..492a665b5 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -8,5 +8,3 @@ alias pup="psu && puo" # add macports completion function to path fpath=($ZSH/plugins/macports $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index bf9f23968..740f96207 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -1,4 +1,2 @@ # add brew completion function to path fpath=($ZSH/plugins/pip $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh index 5e9bcf10a..98d2d705c 100644 --- a/plugins/vagrant/vagrant.plugin.zsh +++ b/plugins/vagrant/vagrant.plugin.zsh @@ -1,3 +1 @@ fpath=($ZSH/plugins/vagrant $fpath) -autoload -U compinit -compinit -i -- cgit v1.2.3-70-g09d2 From 91e4f3d667cc04148fafc4675174424daf5f6b5a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 4 Apr 2011 00:54:43 +0200 Subject: Fix `gdv`: make it a function, and use `view`. I've changed it to use `view` instead of `vim -R` to make it hopefully more editor-agnostic. --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8470c28a4..b21c6a8e0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -12,7 +12,7 @@ compdef _git gp=git-push alias gd='git diff | mate' # WTF is mate?? compdef _git gd=git-diff -alias gdv='git diff -w "$@" | vim -R -' +gdv() { git diff -w "$@" | view - } compdef gdv=git alias gc='git commit -v' compdef gc=git -- cgit v1.2.3-70-g09d2 From b3a78d2b287cc9789d1c791a91448c40dcab2e23 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 12 Apr 2011 10:19:15 +0200 Subject: Using git-diff instead of git diff --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 85eabced0..bc340e86b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -9,7 +9,7 @@ alias gup='git fetch && git rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push -gdv() { git diff -w "$@" | view - } +gdv() { git-diff -w "$@" | view - } compdef _git gdv=git-diff alias gc='git commit -v' compdef _git gc=git-commit -- cgit v1.2.3-70-g09d2 From f9282283822771a7f471547569de481a66a70b0f Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 20 Mar 2011 16:29:00 -0400 Subject: Added npm plugin. --- plugins/npm/_npm | 19 +++++++++++++++++++ plugins/npm/npm.plugin.zsh | 4 ++++ 2 files changed, 23 insertions(+) create mode 100644 plugins/npm/_npm create mode 100644 plugins/npm/npm.plugin.zsh (limited to 'plugins') diff --git a/plugins/npm/_npm b/plugins/npm/_npm new file mode 100644 index 000000000..24b536188 --- /dev/null +++ b/plugins/npm/_npm @@ -0,0 +1,19 @@ +#compdef npm + +# Node Package Manager 0.3.15 completion, letting npm do all the completion work + +_npm() { + compadd -- $(_npm_complete $words) +} + +# We want to show all errors of any substance, but never the "npm (not )ok" one. +# (Also doesn't consider "ERR! no match found" worth breaking the terminal for.) +_npm_complete() { + local ask_npm + ask_npm=(npm completion --color false --loglevel error -- $@) + { _call_program npm $ask_npm 2>&1 >&3 \ + | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \ + } 3>&1 +} + +_npm "$@" diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh new file mode 100644 index 000000000..826f0f7b0 --- /dev/null +++ b/plugins/npm/npm.plugin.zsh @@ -0,0 +1,4 @@ +# add npm completion function to path +fpath=($ZSH/plugins/npm $fpath) +autoload -U compinit +compinit -i -- cgit v1.2.3-70-g09d2 From 0447a0ec11ad56d24ad391e9149c8d7e0429b205 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Tue, 1 Mar 2011 01:04:10 -0500 Subject: added hub plugin from defunkt --- plugins/hub/hub.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/hub/hub.plugin.zsh (limited to 'plugins') diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh new file mode 100644 index 000000000..e82a0ec25 --- /dev/null +++ b/plugins/hub/hub.plugin.zsh @@ -0,0 +1,5 @@ +# hub alias from defunkt +# https://github.com/defunkt/hub +if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then + eval $( hub alias -s $( ps -o comm= -p $$ ) ) +fi -- cgit v1.2.3-70-g09d2 From 8ed33a8ccc5e926e84bf522951ecf80e97e2a8e6 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Tue, 1 Mar 2011 21:34:25 -0500 Subject: no need for an extra fork --- plugins/hub/hub.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh index e82a0ec25..9f95c6361 100644 --- a/plugins/hub/hub.plugin.zsh +++ b/plugins/hub/hub.plugin.zsh @@ -1,5 +1,5 @@ # hub alias from defunkt # https://github.com/defunkt/hub if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then - eval $( hub alias -s $( ps -o comm= -p $$ ) ) + eval $( hub alias -s zsh ) fi -- cgit v1.2.3-70-g09d2 From 2717e147b303beef0f84e6dfbb2db562c8fc6740 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Wed, 2 Mar 2011 20:00:40 -0500 Subject: blueyed's ZSH-fu is much stronger than mine. --- plugins/hub/hub.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh index 9f95c6361..48e1fa4ad 100644 --- a/plugins/hub/hub.plugin.zsh +++ b/plugins/hub/hub.plugin.zsh @@ -1,5 +1,5 @@ # hub alias from defunkt # https://github.com/defunkt/hub -if [ $( which hub > /dev/null 2>&1 ; echo -n $? ) -lt 1 ]; then - eval $( hub alias -s zsh ) +if which hub > /dev/null; then + eval $(hub alias -s zsh) fi -- cgit v1.2.3-70-g09d2 From 277057cb6399769340d41bba9421464c58742026 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Thu, 3 Mar 2011 21:36:35 -0500 Subject: Moved this to the existing github plugin --- plugins/hub/hub.plugin.zsh | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 plugins/hub/hub.plugin.zsh (limited to 'plugins') diff --git a/plugins/hub/hub.plugin.zsh b/plugins/hub/hub.plugin.zsh deleted file mode 100644 index 48e1fa4ad..000000000 --- a/plugins/hub/hub.plugin.zsh +++ /dev/null @@ -1,5 +0,0 @@ -# hub alias from defunkt -# https://github.com/defunkt/hub -if which hub > /dev/null; then - eval $(hub alias -s zsh) -fi -- cgit v1.2.3-70-g09d2 From 9406ae7929bc1d3a063b65e7559a28268aaf0a7a Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Thu, 3 Mar 2011 21:38:56 -0500 Subject: Whoops, this was supposed to be in the last commit! --- plugins/github/github.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'plugins') diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index c23504b85..72e9b07b9 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,3 +1,9 @@ +# hub alias from defunkt +# https://github.com/defunkt/hub +if which hub > /dev/null; then + eval $(hub alias -s zsh) +fi + # add github completion function to path fpath=($ZSH/plugins/github $fpath) autoload -U compinit -- cgit v1.2.3-70-g09d2 From f0922006aba68e485480a81d83ba53b201270a69 Mon Sep 17 00:00:00 2001 From: Theodore Robert Campbell Jr Date: Sat, 19 Mar 2011 10:29:22 -0400 Subject: changes recommended by blueyed --- plugins/github/github.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 72e9b07b9..8d4580654 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,7 +1,8 @@ # hub alias from defunkt # https://github.com/defunkt/hub -if which hub > /dev/null; then - eval $(hub alias -s zsh) +if [ "$commands[(I)hub]" ]; then + # eval `hub alias -s zsh` + function git(){hub "$@"} fi # add github completion function to path -- cgit v1.2.3-70-g09d2 From 6bf906a2622ddea1e9aae5d23c544d37fc4b6a76 Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Tue, 12 Apr 2011 17:41:09 -0400 Subject: Optimize plugin loading so that only one call to compinit is required --- oh-my-zsh.sh | 13 +++++++++++-- plugins/brew/brew.plugin.zsh | 2 -- plugins/cpanm/cpanm.plugin.zsh | 2 -- plugins/gem/gem.plugin.zsh | 2 -- plugins/github/github.plugin.zsh | 2 -- plugins/macports/macports.plugin.zsh | 2 -- plugins/pip/pip.plugin.zsh | 2 -- plugins/vagrant/vagrant.plugin.zsh | 1 - 8 files changed, 11 insertions(+), 15 deletions(-) delete mode 100644 plugins/brew/brew.plugin.zsh delete mode 100644 plugins/cpanm/cpanm.plugin.zsh delete mode 100644 plugins/gem/gem.plugin.zsh delete mode 100644 plugins/github/github.plugin.zsh delete mode 100644 plugins/pip/pip.plugin.zsh delete mode 100644 plugins/vagrant/vagrant.plugin.zsh (limited to 'plugins') diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 84a850ca3..0c85de714 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -10,14 +10,23 @@ for config_file ($ZSH/lib/*.zsh) source $config_file # Load all of your custom configurations from custom/ for config_file ($ZSH/custom/*.zsh) source $config_file -# Load all of the plugins that were defined in ~/.zshrc +# Add all defined plugins to fpath plugin=${plugin:=()} -for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh +for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) # Load and run compinit autoload -U compinit compinit -i +# Load all of the plugins that were defined in ~/.zshrc +for plugin ($plugins) +do + if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ] + then + source $ZSH/plugins/$plugin/$plugin.plugin.zsh + fi +done + # Load the theme source "$ZSH/themes/$ZSH_THEME.zsh-theme" diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh deleted file mode 100644 index 079c0fba0..000000000 --- a/plugins/brew/brew.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add brew completion function to path -fpath=($ZSH/plugins/brew $fpath) diff --git a/plugins/cpanm/cpanm.plugin.zsh b/plugins/cpanm/cpanm.plugin.zsh deleted file mode 100644 index 8425b5ad8..000000000 --- a/plugins/cpanm/cpanm.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add cpanm completion function to path -fpath=($ZSH/plugins/cpanm $fpath) diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh deleted file mode 100644 index cdfad7ad6..000000000 --- a/plugins/gem/gem.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add gem completion function to path -fpath=($ZSH/plugins/gem $fpath) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh deleted file mode 100644 index 0858783cc..000000000 --- a/plugins/github/github.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add github completion function to path -fpath=($ZSH/plugins/github $fpath) diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index 492a665b5..277352e32 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -6,5 +6,3 @@ alias puni="sudo port uninstall inactive" alias puo="sudo port upgrade outdated" alias pup="psu && puo" -# add macports completion function to path -fpath=($ZSH/plugins/macports $fpath) diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh deleted file mode 100644 index 740f96207..000000000 --- a/plugins/pip/pip.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# add brew completion function to path -fpath=($ZSH/plugins/pip $fpath) diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh deleted file mode 100644 index 98d2d705c..000000000 --- a/plugins/vagrant/vagrant.plugin.zsh +++ /dev/null @@ -1 +0,0 @@ -fpath=($ZSH/plugins/vagrant $fpath) -- cgit v1.2.3-70-g09d2 From 60bae66bbfebe7bf78378564ffe9aed00c3342b4 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 7 Apr 2011 10:23:06 +0200 Subject: new yum plugin with useful aliases --- plugins/yum/yum.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/yum/yum.plugin.zsh (limited to 'plugins') diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh new file mode 100644 index 000000000..d6ba7ed62 --- /dev/null +++ b/plugins/yum/yum.plugin.zsh @@ -0,0 +1,12 @@ +## 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 -- cgit v1.2.3-70-g09d2 From 14f07ebc68da8b06cdb0a4fdb435ac928ff419f1 Mon Sep 17 00:00:00 2001 From: alexandru Date: Thu, 14 Apr 2011 16:22:18 -0700 Subject: redis-cli completion plugin --- plugins/redis-cli/_redis-cli | 142 +++++++++++++++++++++++++++++++++ plugins/redis-cli/redis-cli.plugin.zsh | 4 + 2 files changed, 146 insertions(+) create mode 100644 plugins/redis-cli/_redis-cli create mode 100644 plugins/redis-cli/redis-cli.plugin.zsh (limited to 'plugins') diff --git a/plugins/redis-cli/_redis-cli b/plugins/redis-cli/_redis-cli new file mode 100644 index 000000000..3789add18 --- /dev/null +++ b/plugins/redis-cli/_redis-cli @@ -0,0 +1,142 @@ +#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' + 'linset: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 diff --git a/plugins/redis-cli/redis-cli.plugin.zsh b/plugins/redis-cli/redis-cli.plugin.zsh new file mode 100644 index 000000000..af5a843c9 --- /dev/null +++ b/plugins/redis-cli/redis-cli.plugin.zsh @@ -0,0 +1,4 @@ +# add redis completion function to path +fpath=($ZSH/plugins/redis-cli $fpath) +autoload -U compinit +compinit -i -- cgit v1.2.3-70-g09d2 From 886af72125a108c2f928474c7f817dd2c164795e Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Wed, 20 Apr 2011 01:30:52 -0400 Subject: Remove fpath/compinit code from github and npm plugins --- plugins/github/github.plugin.zsh | 4 ---- plugins/npm/npm.plugin.zsh | 4 ---- 2 files changed, 8 deletions(-) delete mode 100644 plugins/npm/npm.plugin.zsh (limited to 'plugins') diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 8d4580654..df7053ba7 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -5,7 +5,3 @@ if [ "$commands[(I)hub]" ]; then function git(){hub "$@"} fi -# add github completion function to path -fpath=($ZSH/plugins/github $fpath) -autoload -U compinit -compinit -i diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh deleted file mode 100644 index 826f0f7b0..000000000 --- a/plugins/npm/npm.plugin.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# add npm completion function to path -fpath=($ZSH/plugins/npm $fpath) -autoload -U compinit -compinit -i -- cgit v1.2.3-70-g09d2 From 96ec1e12498fb2c3200fef941ad6eadece723a0d Mon Sep 17 00:00:00 2001 From: Alexander Rinass Date: Wed, 20 Apr 2011 15:50:55 +0200 Subject: Fixed folder naming for mysql-macports plugin and improved start/stop scripts. --- plugins/mysql-macports/mysql-macports.plugin.zsh | 8 ++++++++ plugins/mysql/mysql-macports.plugin.zsh | 6 ------ 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 plugins/mysql-macports/mysql-macports.plugin.zsh delete mode 100644 plugins/mysql/mysql-macports.plugin.zsh (limited to 'plugins') diff --git a/plugins/mysql-macports/mysql-macports.plugin.zsh b/plugins/mysql-macports/mysql-macports.plugin.zsh new file mode 100644 index 000000000..c39563fe4 --- /dev/null +++ b/plugins/mysql-macports/mysql-macports.plugin.zsh @@ -0,0 +1,8 @@ +# commands to control local mysql-server installation +# paths are for osx installation via macports + +alias mysqlstart='sudo /opt/local/share/mysql5/mysql/mysql.server start' +alias mysqlstop='sudo /opt/local/share/mysql5/mysql/mysql.server stop' +alias mysqlrestart='sudo /opt/local/share/mysql5/mysql/mysql.server restart' + +alias mysqlstatus='mysqladmin5 -u root -p ping' diff --git a/plugins/mysql/mysql-macports.plugin.zsh b/plugins/mysql/mysql-macports.plugin.zsh deleted file mode 100644 index 63b881c9f..000000000 --- a/plugins/mysql/mysql-macports.plugin.zsh +++ /dev/null @@ -1,6 +0,0 @@ -# commands to control local mysql-server installation -# paths are for osx installtion via macports - -alias mysqlstart='sudo /opt/local/bin/mysqld_safe5' -alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown' -alias mysqlstatus='mysqladmin5 -u root -p ping' \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 34f1944016a7671fe47aca99f18f25d19f6ff5dc Mon Sep 17 00:00:00 2001 From: Alexander Rinass Date: Wed, 20 Apr 2011 15:54:51 +0200 Subject: Added start/stop aliases for Apache 2 installation via macports. --- plugins/apache2-macports/apache2-macports.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/apache2-macports/apache2-macports.plugin.zsh (limited to 'plugins') diff --git a/plugins/apache2-macports/apache2-macports.plugin.zsh b/plugins/apache2-macports/apache2-macports.plugin.zsh new file mode 100644 index 000000000..1caa4cf9d --- /dev/null +++ b/plugins/apache2-macports/apache2-macports.plugin.zsh @@ -0,0 +1,6 @@ +# commands to control local apache2 server installation +# paths are for osx installation via macports + +alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start' +alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop' +alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart' -- cgit v1.2.3-70-g09d2 From 6f53b3130d5aee8461b0be30e5589e5673929318 Mon Sep 17 00:00:00 2001 From: Ilmari Vacklin Date: Fri, 22 Apr 2011 00:16:29 +0300 Subject: Add 'upgrade' to brew completions. --- plugins/brew/_brew | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins') diff --git a/plugins/brew/_brew b/plugins/brew/_brew index 4e590ac63..cee1e25f0 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -31,6 +31,7 @@ _1st_arguments=( 'search:search for a formula (/regex/ or string)' 'unlink:unlink a formula' 'update:freshen up links' + 'upgrade:upgrade outdated formulae' 'uses:show formulas which depend on a formula' ) -- cgit v1.2.3-70-g09d2 From 1783b16d25029b72bdd1aa164f3e76fd29702e70 Mon Sep 17 00:00:00 2001 From: Florian Adamsky Date: Tue, 26 Apr 2011 23:22:42 +0200 Subject: added alias for apt-cache search --- plugins/deb/deb.plugin.zsh | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins') diff --git a/plugins/deb/deb.plugin.zsh b/plugins/deb/deb.plugin.zsh index 732294a87..1b35a0646 100644 --- a/plugins/deb/deb.plugin.zsh +++ b/plugins/deb/deb.plugin.zsh @@ -9,4 +9,5 @@ alias ar="sudo apt-get remove --purge && \ sudo apt-get autoremove --purge" # remove package alias ap="apt-cache policy" # apt policy alias av="apt-cache show" # show package info +alias acs="apt-cache search" # search package alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache -- cgit v1.2.3-70-g09d2 From 57d699ee33e5d4673d8c6a2a9ba42bd25d7b737c Mon Sep 17 00:00:00 2001 From: Pat Regan Date: Wed, 27 Apr 2011 19:46:23 -0400 Subject: redis-cli.plugin.zsh removed, adding to the fpath isn't needed now --- plugins/redis-cli/redis-cli.plugin.zsh | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 plugins/redis-cli/redis-cli.plugin.zsh (limited to 'plugins') diff --git a/plugins/redis-cli/redis-cli.plugin.zsh b/plugins/redis-cli/redis-cli.plugin.zsh deleted file mode 100644 index af5a843c9..000000000 --- a/plugins/redis-cli/redis-cli.plugin.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# add redis completion function to path -fpath=($ZSH/plugins/redis-cli $fpath) -autoload -U compinit -compinit -i -- cgit v1.2.3-70-g09d2 From 7377ba3f7a08bb11114ddae1b421599e4073da96 Mon Sep 17 00:00:00 2001 From: Kevin Daudt Date: Fri, 29 Apr 2011 11:54:31 +0200 Subject: Added git-flow plugin --- .gitignore | 3 +- plugins/git-flow/git-flow.plugin.zsh | 332 +++++++++++++++++++++++++++++++++++ 2 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 plugins/git-flow/git-flow.plugin.zsh (limited to 'plugins') diff --git a/.gitignore b/.gitignore index 8d19d100c..4b555067e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ locals.zsh log/.zsh_history projects.zsh custom/* -!custom/example.zsh \ No newline at end of file +!custom/example.zsh +cache diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh new file mode 100644 index 000000000..270bcbe38 --- /dev/null +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -0,0 +1,332 @@ +#!zsh +# +# Installation +# ------------ +# +# To achieve git-flow completion nirvana: +# +# 0. Update your zsh's git-completion module to the newest verion. +# From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD +# +# 1. Install this file. Either: +# +# a. Place it in your .zshrc: +# +# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in +# your .zshrc: +# +# source ~/.git-flow-completion.zsh +# +# c. Or, use this file as a oh-my-zsh plugin. +# + +_git-flow () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'init:Initialize a new git repo with support for the branching model.' + 'feature:Manage your feature branches.' + 'release:Manage your release branches.' + 'hotfix:Manage your hotfix branches.' + 'support:Manage your support branches.' + 'version:Shows version information.' + ) + _describe -t commands 'git flow' subcommands + ;; + + (options) + case $line[1] in + + (init) + _arguments \ + -f'[Force setting of gitflow branches, even if already configured]' + ;; + + (version) + ;; + + (hotfix) + __git-flow-hotfix + ;; + + (release) + __git-flow-release + ;; + + (feature) + __git-flow-feature + ;; + esac + ;; + esac +} + +__git-flow-release () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new release branch.' + 'finish:Finish a release branch.' + 'list:List all your release branches. (Alias to `git flow release`)' + ) + _describe -t commands 'git flow release' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':version:__git_flow_version_list' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + ':version:__git_flow_version_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-hotfix () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new hotfix branch.' + 'finish:Finish a hotfix branch.' + 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' + ) + _describe -t commands 'git flow hotfix' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':hotfix:__git_flow_version_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + ':hotfix:__git_flow_hotfix_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-feature () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new feature branch.' + 'finish:Finish a feature branch.' + 'list:List all your feature branches. (Alias to `git flow feature`)' + 'publish: public' + 'track: track' + 'diff: diff' + 'rebase: rebase' + 'checkout: checkout' + 'pull: pull' + ) + _describe -t commands 'git flow feature' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':feature:__git_flow_feature_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -r'[Rebase instead of merge]'\ + ':feature:__git_flow_feature_list' + ;; + + (publish) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (track) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (diff) + _arguments \ + ':branch:__git_branch_names'\ + ;; + + (rebase) + _arguments \ + -i'[Do an interactive rebase]' \ + ':branch:__git_branch_names' + ;; + + (checkout) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (pull) + _arguments \ + ':remote:__git_remotes'\ + ':branch:__git_branch_names' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git_flow_version_list () +{ + local expl + declare -a versions + + versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted versions expl 'version' compadd $versions +} + +__git_flow_feature_list () +{ + local expl + declare -a features + + features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted features expl 'feature' compadd $features +} + +__git_remotes () { + local expl gitdir remotes + + gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) + __git_command_successful || return + + remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) + __git_command_successful || return + + # TODO: Should combine the two instead of either or. + if (( $#remotes > 0 )); then + _wanted remotes expl remote compadd $* - $remotes + else + _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" + fi +} + +__git_flow_hotfix_list () +{ + local expl + declare -a hotfixes + + hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted hotfixes expl 'hotfix' compadd $hotfixes +} + +__git_branch_names () { + local expl + declare -a branch_names + + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + + _wanted branch-names expl branch-name compadd $* - $branch_names +} + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 86fa4385c51d6778b1358d6f7134c1243feace87 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Fri, 29 Apr 2011 10:59:59 +0100 Subject: Rails 3 aliases now work with Rails 2 as well. --- plugins/rails3/rails3.plugin.zsh | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'plugins') diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index 6bf2ba088..f669ef047 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -1,10 +1,30 @@ -alias rs='ruby script/rails server' -alias rg='ruby script/rails generate' -alias rd='ruby script/rails destroy' -alias rp='ruby script/rails plugin' +# Rails 3 aliases, backwards-compatible with Rails 2. + +function _bundle_command { + if command -v bundle && [ -e "Gemfile" ]; then + bundle exec $@ + else + $@ + fi +} + +function _rails_command () { + 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 rdbmr='rake db:migrate && rake db:migrate:redo' -alias rc='ruby script/rails console' -alias rd='ruby script/rails server --debugger' +alias rg='_rails_command generate' +alias rp='_rails_command plugin' +alias rs='_rails_command server' +alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' +alias rspec='_bundle_command rspec' +alias cuke='_bundle_command cucumber' -- cgit v1.2.3-70-g09d2 From bd1a78ae34cc3ce81a7b858f459ad0ad8da2cf62 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 5 May 2011 18:41:05 -0400 Subject: Added Compleat - Completion for Human Beings plugin. --- plugins/compleat/compleat.plugin.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/compleat/compleat.plugin.zsh (limited to 'plugins') diff --git a/plugins/compleat/compleat.plugin.zsh b/plugins/compleat/compleat.plugin.zsh new file mode 100644 index 000000000..8d16a5687 --- /dev/null +++ b/plugins/compleat/compleat.plugin.zsh @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------------ +# FILE: compleat.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.0 +# ------------------------------------------------------------------------------ + + +if (( ${+commands[compleat]} )); then + local prefix="${commands[compleat]:h:h}" + local setup="${prefix}/share/compleat-1.0/compleat_setup" + + if [[ -f "$setup" ]]; then + if ! bashcompinit >/dev/null 2>&1; then + autoload -U bashcompinit + bashcompinit -i + fi + + source "$setup" + fi +fi + -- cgit v1.2.3-70-g09d2 From 31ef6199675be846e473c20681da339b6ea864cd Mon Sep 17 00:00:00 2001 From: Jacob Atzen Date: Thu, 19 May 2011 16:20:30 +0200 Subject: Add autojump plugin --- plugins/autojump/autojump.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/autojump/autojump.plugin.zsh (limited to 'plugins') diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh new file mode 100644 index 000000000..da0a12765 --- /dev/null +++ b/plugins/autojump/autojump.plugin.zsh @@ -0,0 +1,3 @@ +if [ -f `brew --prefix`/etc/autojump ]; then + . `brew --prefix`/etc/autojump +fi -- cgit v1.2.3-70-g09d2 From bde77af40d28ed7a308a843d8bcad556d8115f84 Mon Sep 17 00:00:00 2001 From: Jacob Atzen Date: Thu, 19 May 2011 16:33:29 +0200 Subject: TextMate automatically forks into the background --- plugins/textmate/textmate.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/textmate/textmate.plugin.zsh b/plugins/textmate/textmate.plugin.zsh index 7b73e2751..7c4c14a5f 100644 --- a/plugins/textmate/textmate.plugin.zsh +++ b/plugins/textmate/textmate.plugin.zsh @@ -1,9 +1,9 @@ # 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 &' +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' -- cgit v1.2.3-70-g09d2 From 5da609e2c96c100c3c862e83f96e618d693c934f Mon Sep 17 00:00:00 2001 From: Pete Clark Date: Tue, 24 May 2011 15:28:42 -0400 Subject: Adds the _task script included with TaskWarrior On my Ubuntu system this file was found in /usr/share/doc/task/scripts/zsh/_task.gz --- plugins/taskwarrior/_task | 280 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 plugins/taskwarrior/_task (limited to 'plugins') diff --git a/plugins/taskwarrior/_task b/plugins/taskwarrior/_task new file mode 100644 index 000000000..5bffa9119 --- /dev/null +++ b/plugins/taskwarrior/_task @@ -0,0 +1,280 @@ +#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 +} -- cgit v1.2.3-70-g09d2 From 1e86678f9d3c8c979ff8d3c8b5aac19e9e611441 Mon Sep 17 00:00:00 2001 From: Pete Clark Date: Tue, 24 May 2011 15:29:05 -0400 Subject: Adds oh-my-zsh plugin to load TaskWarrior completions --- plugins/taskwarrior/taskwarrior.plugin.zsh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 plugins/taskwarrior/taskwarrior.plugin.zsh (limited to 'plugins') diff --git a/plugins/taskwarrior/taskwarrior.plugin.zsh b/plugins/taskwarrior/taskwarrior.plugin.zsh new file mode 100644 index 000000000..c1830042e --- /dev/null +++ b/plugins/taskwarrior/taskwarrior.plugin.zsh @@ -0,0 +1,21 @@ +################################################################################ +# Author: Pete Clark +# Email: pete[dot]clark[at]gmail[dot]com +# Version: 0.1 (05/24/2011) +# License: WTFPL +# +# This oh-my-zsh plugin adds smart tab completion for +# TaskWarrior. 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 -- cgit v1.2.3-70-g09d2 From 04573324d52aaadf947f3a80190e4f54d8580932 Mon Sep 17 00:00:00 2001 From: Martin Thurau Date: Fri, 27 May 2011 16:58:14 +0200 Subject: Added compatibility for the linux 'stat' command for the ant plugin --- plugins/ant/ant.plugin.zsh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 0544ac92c..23bc7756a 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,8 +1,15 @@ +stat -f%m . > /dev/null 2>&1 +if [ "$?" = 0 ]; then + stat_cmd=(stat -f%m) +else + stat_cmd=(stat -L --format=%y) +fi + _ant_does_target_list_need_generating () { if [ ! -f .ant_targets ]; then return 0; else - accurate=$(stat -f%m .ant_targets) - changed=$(stat -f%m build.xml) + accurate=$($stat_cmd -f%m .ant_targets) + changed=$($stat_cmd -f%m build.xml) return $(expr $accurate '>=' $changed) fi } -- cgit v1.2.3-70-g09d2 From 3e433165502a01028fcd0368161a2193eaeb386c Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 10:16:06 -0400 Subject: Ruby Switching Helpers Add helper functions to switch gemsets on ruby-1.8.7-p334 and ruby-1.9.2-p180. Add completion definitions for helper functions. --- plugins/rvm/rvm.plugin.zsh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'plugins') diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index ef934d547..274123836 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -1,3 +1,28 @@ fpath=($ZSH/plugins/rvm $fpath) autoload -U compinit compinit -i + +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 -- cgit v1.2.3-70-g09d2 From e703c9591c64cd23bb0f0e1a892fbed0efe74fa7 Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 10:23:06 -0400 Subject: Helpful Listing Aliases Add alias to list installed rubies. Add alias to list gemsets in active ruby. --- plugins/rvm/rvm.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'plugins') diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 274123836..ba780c97d 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -2,6 +2,9 @@ fpath=($ZSH/plugins/rvm $fpath) autoload -U compinit compinit -i +alias rubies='rvm list rubies' +alias gemsets='rvm gemset list' + local ruby18='ruby-1.8.7-p334' local ruby19='ruby-1.9.2-p180' -- cgit v1.2.3-70-g09d2 From 9f34bbedc8d4843b0ed50f76d38b63e5aa48cc8b Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 10:35:54 -0400 Subject: RVM Update Helpers Add helper function to get rvm head. Add helper function to link zsh completion that comes with rvm into om-my-zsh plugin directory, but don't overwrite the completion that comes with oh-my-zsh (oh-my-zsh's completion is better, but I want to be able to compare). --- plugins/rvm/rvm.plugin.zsh | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'plugins') diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index ba780c97d..509dcbd98 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -29,3 +29,12 @@ function rb19 { _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? +} + +function rvm-link-completion { + ln -s "$rvm_path/scripts/zsh/Completion/_rvm" "$ZSH/plugins/rvm/_rvm.official" +} -- cgit v1.2.3-70-g09d2 From 572b27b75724d00fbc99ef64de3dbd21a28c8194 Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 10:50:06 -0400 Subject: Gem List Helper Add helper function to list gems in a pretty way (only with rvm, for now). Add missng EOF newline and a todo to the ruby plugin. --- plugins/ruby/ruby.plugin.zsh | 4 +++- plugins/rvm/rvm.plugin.zsh | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 82bf5d49d..08ca9c601 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/plugins/ruby/ruby.plugin.zsh @@ -1,4 +1,6 @@ +# TODO: Make this compatible with rvm. +# Run sudo gem on the system ruby, not the active ruby. alias sgem='sudo gem' # Find ruby file -alias rfind='find . -name *.rb | xargs grep -n' \ No newline at end of file +alias rfind='find . -name *.rb | xargs grep -n' diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 509dcbd98..8a3ec788a 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -38,3 +38,15 @@ function rvm-update { function rvm-link-completion { ln -s "$rvm_path/scripts/zsh/Completion/_rvm" "$ZSH/plugins/rvm/_rvm.official" } + +# 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" +} -- cgit v1.2.3-70-g09d2 From e263f1f0057f6cac15ef588c681e6f49713c3975 Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 10:57:48 -0400 Subject: Brew Plugin Merge completion with official brew completion. Add a helper to link official completion into oh-my-zsh plugin (without overwriting). Add an alias to list installed brews. Add brews to the path (in a somewhat strange way). --- plugins/brew/_brew | 24 +++++++++++++++++------- plugins/brew/brew.plugin.zsh | 13 +++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 plugins/brew/brew.plugin.zsh (limited to 'plugins') diff --git a/plugins/brew/_brew b/plugins/brew/_brew index cee1e25f0..1dcf0a4bf 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -25,10 +25,12 @@ _1st_arguments=( 'link:link a formula' 'list:list files in a formula or not-installed formulae' 'log:git commit log for a formula' + 'missing:check all installed formuale for missing dependencies.' 'outdated:list formulas for which a newer version is available' 'prune:remove dead links' 'remove:remove a formula' 'search:search for a formula (/regex/ or string)' + 'server:start a local web app that lets you browse formulae (requires Sinatra)' 'unlink:unlink a formula' 'update:freshen up links' 'upgrade:upgrade outdated formulae' @@ -36,10 +38,14 @@ _1st_arguments=( ) local expl -local -a formula installed_formulae +local -a formulae installed_formulae _arguments \ - '(-v --verbose)'{-v,--verbose}'[verbose]' \ + '(-v)-v[verbose]' \ + '(--cellar)--cellar[brew cellar]' \ + '(--config)--config[brew configuration]' \ + '(--env)--env[brew environment]' \ + '(--repository)--repository[brew repository]' \ '(--version)--version[version information]' \ '(--prefix)--prefix[where brew lives on this system]' \ '(--cache)--cache[brew cache]' \ @@ -51,20 +57,24 @@ if (( CURRENT == 1 )); then fi case "$words[1]" in - list) + search|-S) + _arguments \ + '(--macports)--macports[search the macports repository]' \ + '(--fink)--fink[search the fink repository]' ;; + list|ls) _arguments \ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \ + '(--versions)--versions[list all installed versions of a formula]' \ '1: :->forms' && return 0 if [[ "$state" == forms ]]; then _brew_installed_formulae - _requested installed_formulae expl 'installed formulae' compadd -a installed_formulae + _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae fi ;; - install|home|log|info|uses|cat|deps) + install|home|homepage|log|info|abv|uses|cat|deps|edit|options) _brew_all_formulae _wanted formulae expl 'all formulae' compadd -a formulae ;; - remove|edit|xo) + remove|rm|uninstall|unlink|cleanup|link|ln) _brew_installed_formulae _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;; esac - diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh new file mode 100644 index 000000000..f584a4684 --- /dev/null +++ b/plugins/brew/brew.plugin.zsh @@ -0,0 +1,13 @@ +# Move /usr/local/bin (path where brews are linked) to the front of the path +# This will allow us to override system binaries like ruby with our brews +# TODO: Do this in a more compatible way. +# What if someone doesn't have /usr/bin in their path? +export PATH=`echo $PATH | sed -e 's|/usr/local/bin||' -e 's|::|:|g'` # Remove /usr/local/bin +export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/bin:&|'` # Add it in front of /usr/bin +export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/sbin:&|'` # Add /usr/local/sbin + +alias brews='brew list -1' + +function brew-link-completion { + ln -s "$(brew --prefix)/Library/Contributions/brew_zsh_completion.zsh" "$ZSH/plugins/brew/_brew.official" +} -- cgit v1.2.3-70-g09d2 From befb02e3da0573fa788114e1c18c70b75f787f1f Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 11:09:37 -0400 Subject: Pow! Restart Helper Add helper function to restart an app running on Pow! --- plugins/pow/pow.plugin.zsh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/pow/pow.plugin.zsh (limited to 'plugins') diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh new file mode 100644 index 000000000..6b2a6f2be --- /dev/null +++ b/plugins/pow/pow.plugin.zsh @@ -0,0 +1,10 @@ +# Thanks to Christopher Sexton +# https://gist.github.com/965032 +function kapow { + touch ~/.pow/$1/tmp/restart.txt + if [ $? -eq 0 ]; then + echo "$fg[yellow]Pow restarting $1...$reset_color" + fi +} + +compctl -W ~/.pow -/ kapow -- cgit v1.2.3-70-g09d2 From d72b9c5ec5d55765998bb301b3425fbe84012c1f Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 11:20:48 -0400 Subject: Node.js Helpers Add helper function to open node api in browser. Add binaries installed via npm to path. Tell node where to find things (what things?). --- plugins/node/node.plugin.zsh | 8 ++++++++ plugins/npm/npm.plugin.zsh | 2 ++ 2 files changed, 10 insertions(+) create mode 100644 plugins/node/node.plugin.zsh create mode 100644 plugins/npm/npm.plugin.zsh (limited to 'plugins') diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh new file mode 100644 index 000000000..18f35333c --- /dev/null +++ b/plugins/node/node.plugin.zsh @@ -0,0 +1,8 @@ +# This works if you installed node via homebrew. +export NODE_PATH="/usr/local/lib/node" + +# Open the node api for your current version to the optional section. +# TODO: Make the section part easier to use. +function node-api { + open "http://nodejs.org/docs/$(node --version)/api/all.html#$1" +} diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh new file mode 100644 index 000000000..0b0a30e11 --- /dev/null +++ b/plugins/npm/npm.plugin.zsh @@ -0,0 +1,2 @@ +# TODO: Don't do this in such a weird way. +export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/share/npm/bin:&|'` -- cgit v1.2.3-70-g09d2 From 18293cd724224282d6ca473fcbe6e7439d3eac0c Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 11:27:50 -0400 Subject: OS X Helpers Add helper aliases for show/hide files. Add helper alias to recursively delete .DS_Store files. --- plugins/osx/osx.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'plugins') diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 81eed5e92..a65ca642a 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,3 +1,9 @@ +alias showfiles='defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder' +alias hidefiles='defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder' + +# Recursively delete .DS_Store files +alias rm-dsstore="find . -name '*.DS_Store' -type f -delete" + function savepath() { pwd > ~/.current_path~ } -- cgit v1.2.3-70-g09d2 From ace84c8b7eb8b50842798bac9811d02928f58dd3 Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 13:06:03 -0400 Subject: Cleanup Add missing newlines at EOF. Remove redundant comment. Fix grammar in comment. --- plugins/cap/cap.plugin.zsh | 2 +- plugins/compleat/compleat.plugin.zsh | 2 -- plugins/github/github.plugin.zsh | 1 - plugins/textmate/textmate.plugin.zsh | 4 +--- 4 files changed, 2 insertions(+), 7 deletions(-) (limited to 'plugins') diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh index a0fa21d00..8336182d5 100644 --- a/plugins/cap/cap.plugin.zsh +++ b/plugins/cap/cap.plugin.zsh @@ -18,4 +18,4 @@ function _cap () { fi } -compctl -K _cap cap \ No newline at end of file +compctl -K _cap cap diff --git a/plugins/compleat/compleat.plugin.zsh b/plugins/compleat/compleat.plugin.zsh index 8d16a5687..38f1b396a 100644 --- a/plugins/compleat/compleat.plugin.zsh +++ b/plugins/compleat/compleat.plugin.zsh @@ -5,7 +5,6 @@ # VERSION: 1.0.0 # ------------------------------------------------------------------------------ - if (( ${+commands[compleat]} )); then local prefix="${commands[compleat]:h:h}" local setup="${prefix}/share/compleat-1.0/compleat_setup" @@ -19,4 +18,3 @@ if (( ${+commands[compleat]} )); then source "$setup" fi fi - diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index df7053ba7..1eb338113 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -4,4 +4,3 @@ if [ "$commands[(I)hub]" ]; then # eval `hub alias -s zsh` function git(){hub "$@"} fi - diff --git a/plugins/textmate/textmate.plugin.zsh b/plugins/textmate/textmate.plugin.zsh index 7c4c14a5f..aa2f75f4f 100644 --- a/plugins/textmate/textmate.plugin.zsh +++ b/plugins/textmate/textmate.plugin.zsh @@ -1,11 +1,9 @@ - -# 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 +# Edit Ruby app in TextMate alias mr='mate CHANGELOG app config db lib public script spec test' function tm() { -- cgit v1.2.3-70-g09d2 From 18bfb14a2f774b115c8634cdaa3864cbdee91a94 Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sat, 28 May 2011 13:12:03 -0400 Subject: Thor Add plugin with completion for thor. --- plugins/thor/_thor | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/thor/_thor (limited to 'plugins') diff --git a/plugins/thor/_thor b/plugins/thor/_thor new file mode 100644 index 000000000..9f7ed5aef --- /dev/null +++ b/plugins/thor/_thor @@ -0,0 +1,4 @@ +#compdef thor +#autoload + +compadd `thor list | grep thor | cut -d " " -f 2` -- cgit v1.2.3-70-g09d2 From 1e3b441ce7e0b8706867801c1e5e7ca6760ff17e Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Mon, 30 May 2011 10:07:15 -0400 Subject: Rollback of Pull #366 sorin-ionescu had some good points. --- plugins/brew/brew.plugin.zsh | 12 ------------ plugins/node/node.plugin.zsh | 5 +---- plugins/npm/npm.plugin.zsh | 2 -- plugins/rvm/rvm.plugin.zsh | 9 ++------- 4 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 plugins/npm/npm.plugin.zsh (limited to 'plugins') diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index f584a4684..c2e95884e 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,13 +1 @@ -# Move /usr/local/bin (path where brews are linked) to the front of the path -# This will allow us to override system binaries like ruby with our brews -# TODO: Do this in a more compatible way. -# What if someone doesn't have /usr/bin in their path? -export PATH=`echo $PATH | sed -e 's|/usr/local/bin||' -e 's|::|:|g'` # Remove /usr/local/bin -export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/bin:&|'` # Add it in front of /usr/bin -export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/sbin:&|'` # Add /usr/local/sbin - alias brews='brew list -1' - -function brew-link-completion { - ln -s "$(brew --prefix)/Library/Contributions/brew_zsh_completion.zsh" "$ZSH/plugins/brew/_brew.official" -} diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh index 18f35333c..519bc18da 100644 --- a/plugins/node/node.plugin.zsh +++ b/plugins/node/node.plugin.zsh @@ -1,8 +1,5 @@ -# This works if you installed node via homebrew. -export NODE_PATH="/usr/local/lib/node" - # Open the node api for your current version to the optional section. # TODO: Make the section part easier to use. -function node-api { +function node-docs { open "http://nodejs.org/docs/$(node --version)/api/all.html#$1" } diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh deleted file mode 100644 index 0b0a30e11..000000000 --- a/plugins/npm/npm.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: Don't do this in such a weird way. -export PATH=`echo $PATH | sed -e 's|/usr/bin|/usr/local/share/npm/bin:&|'` diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 8a3ec788a..40fd88c1a 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -1,6 +1,5 @@ -fpath=($ZSH/plugins/rvm $fpath) -autoload -U compinit -compinit -i +# What does this really do? +# fpath=($ZSH/plugins/rvm $fpath) alias rubies='rvm list rubies' alias gemsets='rvm gemset list' @@ -35,10 +34,6 @@ function rvm-update { rvm reload # TODO: Reload rvm completion? } -function rvm-link-completion { - ln -s "$rvm_path/scripts/zsh/Completion/_rvm" "$ZSH/plugins/rvm/_rvm.official" -} - # TODO: Make this usable w/o rvm. function gems { local current_ruby=`rvm-prompt i v p` -- cgit v1.2.3-70-g09d2 From 9801ad6453caa05925847f63401e6266378eb2de Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Mon, 30 May 2011 11:10:08 -0400 Subject: Remove Uneeded Lines --- plugins/rvm/rvm.plugin.zsh | 3 --- 1 file changed, 3 deletions(-) (limited to 'plugins') diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 40fd88c1a..24621fe0b 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -1,6 +1,3 @@ -# What does this really do? -# fpath=($ZSH/plugins/rvm $fpath) - alias rubies='rvm list rubies' alias gemsets='rvm gemset list' -- cgit v1.2.3-70-g09d2 From f4878971752b6d76743c29d6f478d20c84755b8e Mon Sep 17 00:00:00 2001 From: Brian Riddle Date: Tue, 31 May 2011 14:16:43 +0200 Subject: fix double -f and corrected format. -f%m was getting called twice in the stat_cmd corrected format of stat command from y to Y. --- plugins/ant/ant.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 23bc7756a..691d4d2db 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -2,14 +2,14 @@ stat -f%m . > /dev/null 2>&1 if [ "$?" = 0 ]; then stat_cmd=(stat -f%m) else - stat_cmd=(stat -L --format=%y) + stat_cmd=(stat -L --format=%Y) fi _ant_does_target_list_need_generating () { if [ ! -f .ant_targets ]; then return 0; else - accurate=$($stat_cmd -f%m .ant_targets) - changed=$($stat_cmd -f%m build.xml) + accurate=$($stat_cmd .ant_targets) + changed=$($stat_cmd build.xml) return $(expr $accurate '>=' $changed) fi } -- cgit v1.2.3-70-g09d2 From f401d6ef78a94b723ce841b77151eaac477b8074 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 22 Feb 2011 23:32:50 -0500 Subject: Vastly improved osx plugin. --- plugins/osx/osx.plugin.zsh | 134 ++++++++++++++++++++++++++++----------------- 1 file changed, 85 insertions(+), 49 deletions(-) (limited to 'plugins') diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index a65ca642a..682bb2667 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,63 +1,99 @@ -alias showfiles='defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder' -alias hidefiles='defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder' +# ------------------------------------------------------------------------------ +# FILE: osx.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.1 +# ------------------------------------------------------------------------------ -# Recursively delete .DS_Store files -alias rm-dsstore="find . -name '*.DS_Store' -type f -delete" - -function savepath() { - pwd > ~/.current_path~ -} function tab() { -savepath -osascript >/dev/null < 0 )) && command="${command}; $*" + + the_app=$( + osascript 2>/dev/null </dev/null </dev/null </dev/null </dev/null </dev/null < 0 )) && qlmanage -p $* &>/dev/null & +} + +function man-preview() { + man -t "$@" | open -f -a Preview +} + +function trash() { + local trash_dir="${HOME}/.Trash" + local temp_ifs=$IFS + IFS=$'\n' + for item in "$@"; do + if [[ -e "$item" ]]; then + item_name="$(basename $item)" + if [[ -e "${trash_dir}/${item_name}" ]]; then + mv -f "$item" "${trash_dir}/${item_name} $(date "+%H-%M-%S")" + else + mv -f "$item" "${trash_dir}/" + fi + fi + done + IFS=$temp_ifs +} + -- cgit v1.2.3-70-g09d2 From 5e5096dad60ef0f41aea384c1e249a3bf0377be6 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Fri, 22 Apr 2011 19:13:37 -0400 Subject: Added man-preview completion suggested by @webflo. --- plugins/osx/_man-preview | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/osx/_man-preview (limited to 'plugins') diff --git a/plugins/osx/_man-preview b/plugins/osx/_man-preview new file mode 100644 index 000000000..6cc344ad4 --- /dev/null +++ b/plugins/osx/_man-preview @@ -0,0 +1,5 @@ +#compdef man-preview +#autoload + +_man + -- cgit v1.2.3-70-g09d2 From 1db6575f14d07b9ed3b0ce530837a8a0713b69d0 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 3 Feb 2011 22:46:52 -0500 Subject: Added extract plugin. --- lib/aliases.zsh | 1 - lib/functions.zsh | 35 ---------------- plugins/extract/_extract | 8 ++++ plugins/extract/extract.plugin.zsh | 83 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 36 deletions(-) create mode 100644 plugins/extract/_extract create mode 100644 plugins/extract/extract.plugin.zsh (limited to 'plugins') diff --git a/lib/aliases.zsh b/lib/aliases.zsh index b47de5bde..0555be264 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -22,4 +22,3 @@ alias sl=ls # often screw this up alias afind='ack-grep -il' -alias x=extract diff --git a/lib/functions.zsh b/lib/functions.zsh index b29d3e482..ef7cc6383 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -15,38 +15,3 @@ function take() { cd $1 } -function extract() { - unset REMOVE_ARCHIVE - - if test "$1" = "-r"; then - REMOVE=1 - shift - fi - if [[ -f $1 ]]; then - case $1 in - *.tar.bz2) tar xvjf $1;; - *.tar.gz) tar xvzf $1;; - *.tar.xz) tar xvJf $1;; - *.tar.lzma) tar --lzma -xvf $1;; - *.bz2) bunzip $1;; - *.rar) unrar x $1;; - *.gz) gunzip $1;; - *.tar) tar xvf $1;; - *.tbz2) tar xvjf $1;; - *.tgz) tar xvzf $1;; - *.zip) unzip $1;; - *.Z) uncompress $1;; - *.7z) 7z x $1;; - *) echo "'$1' cannot be extracted via >extract<";; - esac - - if [[ $REMOVE_ARCHIVE -eq 1 ]]; then - echo removing "$1"; - /bin/rm "$1"; - fi - - else - echo "'$1' is not a valid file" - fi -} - diff --git a/plugins/extract/_extract b/plugins/extract/_extract new file mode 100644 index 000000000..dca890954 --- /dev/null +++ b/plugins/extract/_extract @@ -0,0 +1,8 @@ +#compdef extract +#autoload + +_arguments \ + '(-r --remove)'{-r,--remove}'[Remove archive.]' \ + "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0 + + diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh new file mode 100644 index 000000000..c58692fbf --- /dev/null +++ b/plugins/extract/extract.plugin.zsh @@ -0,0 +1,83 @@ +# ------------------------------------------------------------------------------ +# FILE: extract.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.0 +# ------------------------------------------------------------------------------ + + +function extract() { + local remove_archive + local success + local file_name + local extract_dir + + if (( $# == 0 )); then + echo "Usage: extract [-option] [file ...]" + echo + echo Options: + echo " -r, --remove Remove archive." + echo + echo "Report bugs to ." + fi + + remove_archive=1 + if [[ "$1" == "-r" ]] || [[ "$1" == "--remove" ]]; then + remove_archive=0 + shift + fi + + while (( $# > 0 )); do + if [[ ! -f "$1" ]]; then + echo "extract: '$1' is not a valid file" 1>&2 + shift + continue + fi + + success=0 + file_name="$( basename "$1" )" + extract_dir="$( echo "$file_name" | sed "s/\.${1##*.}//g" )" + case "$1" in + (*.tar.gz|*.tgz) tar xvzf "$1" ;; + (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; + (*.tar.xz|*.txz) tar xvJf "$1" ;; + # (*.tar.xz|*.txz) xzcat "$1" | tar xvf - ;; + (*.tar.lzma|*.tlz) tar --lzma -xvf "$1" ;; + # (*.tar.lzma|*.tlz) lzcat "$1" | tar xvf - ;; + (*.tar) tar xvf "$1" ;; + (*.gz) gunzip "$1" ;; + (*.bz2) bunzip2 "$1" ;; + (*.xz) unxz "$1" ;; + (*.lzma) unlzma "$1" ;; + (*.Z) uncompress "$1" ;; + (*.zip) unzip "$1" -d $extract_dir ;; + (*.rar) unrar e -ad "$1" ;; + (*.7z) 7za x "$1" ;; + (*.deb) + mkdir -p "$extract_dir/control" + mkdir -p "$extract_dir/data" + cd "$extract_dir"; ar vx "../${1}" > /dev/null + cd control; tar xzvf ../control.tar.gz + cd ../data; tar xzvf ../data.tar.gz + cd ..; rm *.tar.gz debian-binary + cd .. + ;; + (*) + echo "extract: '$1' cannot be extracted" 1>&2 + success=1 + ;; + esac + + (( success = $success > 0 ? $success : $? )) + (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" + shift + done +} + +alias x=extract + +# add extract completion function to path +fpath=($ZSH/plugins/extract $fpath) +autoload -U compinit +compinit -i + -- cgit v1.2.3-70-g09d2 From a5c383258b760ad1c34d550edb86d7d63e8f5877 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 17 Apr 2011 23:17:48 -0400 Subject: Handle tar.xz and tar.lzma better (credit: @gwjo). --- plugins/extract/extract.plugin.zsh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'plugins') diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index c58692fbf..8cc17f7d4 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -2,7 +2,7 @@ # FILE: extract.plugin.zsh # DESCRIPTION: oh-my-zsh plugin file. # AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) -# VERSION: 1.0.0 +# VERSION: 1.0.1 # ------------------------------------------------------------------------------ @@ -40,10 +40,12 @@ function extract() { case "$1" in (*.tar.gz|*.tgz) tar xvzf "$1" ;; (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; - (*.tar.xz|*.txz) tar xvJf "$1" ;; - # (*.tar.xz|*.txz) xzcat "$1" | tar xvf - ;; - (*.tar.lzma|*.tlz) tar --lzma -xvf "$1" ;; - # (*.tar.lzma|*.tlz) lzcat "$1" | tar xvf - ;; + (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ + && tar --xz -xvf "$1" \ + || xzcat "$1" | tar xvf - ;; + (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ + && tar --lzma -xvf "$1" \ + || lzcat "$1" | tar xvf - ;; (*.tar) tar xvf "$1" ;; (*.gz) gunzip "$1" ;; (*.bz2) bunzip2 "$1" ;; -- cgit v1.2.3-70-g09d2 From 9b63a03bcfb7a6c34281d7d905575c5647e9c8d2 Mon Sep 17 00:00:00 2001 From: Matt Doran Date: Sat, 4 Jun 2011 00:32:05 +1000 Subject: Fix typos in the svn plugin that would cause calls to 'svn' when not in an svn working copy. --- plugins/svn/svn.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 45d461306..86050227d 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -13,7 +13,7 @@ function in_svn() { } 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/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//" @@ -21,13 +21,13 @@ function svn_get_repo_name { } function svn_get_rev_nr { - if [ is_svn ]; then + if [ in_svn ]; then svn info 2> /dev/null | sed -n s/Revision:\ //p fi } function svn_dirty_choose { - if [ is_svn ]; then + if [ in_svn ]; then s=$(svn status 2>/dev/null) if [ $s ]; then echo $1 @@ -39,4 +39,4 @@ function svn_dirty_choose { function svn_dirty { svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN -} \ No newline at end of file +} -- cgit v1.2.3-70-g09d2 From 35b879a17b965b0ea28009c4561962c9ed17ef1f Mon Sep 17 00:00:00 2001 From: gwjo Date: Sat, 4 Jun 2011 21:07:55 -0400 Subject: Add support for agent forwarding --- plugins/ssh-agent/ssh-agent.plugin.zsh | 52 ++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 12 deletions(-) (limited to 'plugins') diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 0efc4546f..0f5b03d26 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -1,23 +1,51 @@ -# 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 +# +# +# 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 { - /usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} - chmod 600 ${SSH_ENV} - . ${SSH_ENV} > /dev/null +function _plugin__start_agent() +{ + /usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${_plugin__ssh_env} + chmod 600 ${_plugin__ssh_env} + . ${_plugin__ssh_env} > /dev/null /usr/bin/ssh-add; } -# 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" && -z $SSH_AGENT_PID && -n "$SSH_AUTH_SOCK" ]]; then + # No PID but a AUTH_SOCK means agent forwarding is enabled + # Add a nifty symlink for screen/tmux + [[ -L $SSH_AUTH_SOCK ]] || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen -if [ -f "${SSH_ENV}" ]; then - . ${SSH_ENV} > /dev/null +elif [ -f "${_plugin__ssh_env}" ]; then + # Source SSH settings, if applicable + . ${_plugin__ssh_env} > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { - start_agent; + _plugin__start_agent; } else - start_agent; + _plugin__start_agent; fi +# tidy up after ourselves +unfunction _plugin__start_agent +unset _plugin__forwarding +unset _plugin__ssh_env + -- cgit v1.2.3-70-g09d2 From 40b7f2099d393950e26d1a9720743e161b1abe49 Mon Sep 17 00:00:00 2001 From: gwjo Date: Sat, 4 Jun 2011 22:16:10 -0400 Subject: Add support for loading mulitple identities --- plugins/ssh-agent/ssh-agent.plugin.zsh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 0f5b03d26..c4e92a1fe 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -6,6 +6,11 @@ # # 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 # @@ -21,17 +26,23 @@ local _plugin__forwarding function _plugin__start_agent() { + local -a identities + + # 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 - /usr/bin/ssh-add; + + # load identies + zstyle -a :omz:plugins:ssh-agent identities identities + echo starting... + /usr/bin/ssh-add $HOME/.ssh/${^identities} } # test if agent-forwarding is enabled zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding -if [[ ${_plugin__forwarding} == "yes" && -z $SSH_AGENT_PID && -n "$SSH_AUTH_SOCK" ]]; then - # No PID but a AUTH_SOCK means agent forwarding is enabled - # Add a nifty symlink for screen/tmux +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 elif [ -f "${_plugin__ssh_env}" ]; then -- cgit v1.2.3-70-g09d2 From f9bf396e4ac68299f1370ed54350cc14ce954eea Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Thu, 9 Jun 2011 21:22:33 -0700 Subject: Add Django plugin. This is a slight modification of the Django zsh completions that I found at https://raw.github.com/technolize/zsh-completion-funcs/master/_manage.py --- plugins/django/django.plugin.zsh | 222 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 plugins/django/django.plugin.zsh (limited to 'plugins') diff --git a/plugins/django/django.plugin.zsh b/plugins/django/django.plugin.zsh new file mode 100644 index 000000000..1d72a2f2c --- /dev/null +++ b/plugins/django/django.plugin.zsh @@ -0,0 +1,222 @@ +#compdef manage.py + +typeset -ga nul_args +nul_args=( + '--settings=-[the Python path to a settings module.]:file:_files' + '--pythonpath=-[a directory to add to the Python path.]::directory:_directories' + '--traceback[print traceback on exception.]' + "--version[show program's version number and exit.]" + {-h,--help}'[show this help message and exit.]' +) + +_managepy-adminindex(){ + _arguments -s : \ + $nul_args \ + '*::directory:_directories' && ret=0 +} + +_managepy-createcachetable(){ + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-dbshell(){ + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-diffsettings(){ + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-dumpdata(){ + _arguments -s : \ + '--format=-[specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ + '--indent=-[specifies the indent level to use when pretty-printing output.]:' \ + $nul_args \ + '*::appname:_applist' && ret=0 +} + +_managepy-flush(){ + _arguments -s : \ + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + $nul_args && ret=0 +} + +_managepy-help(){ + _arguments -s : \ + '*:command:_managepy_cmds' \ + $nul_args && ret=0 +} + +_managepy_cmds(){ + local line + local -a cmd + _call_program help-command ./manage.py help \ + |& sed -n '/^ /s/[(), ]/ /gp' \ + | while read -A line; do cmd=($line $cmd) done + _describe -t managepy-command 'manage.py command' cmd +} + +_managepy-inspectdb(){ + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-loaddata(){ + _arguments -s : \ + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '*::file:_files' \ + $nul_args && ret=0 +} + +_managepy-reset(){ + _arguments -s : \ + '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + '*::appname:_applist' \ + $nul_args && ret=0 +} + +_managepy-runfcgi(){ + local state + + local fcgi_opts + fcgi_opts=( + 'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)' + 'host[hostname to listen on..]:' + 'port[port to listen on.]:' + 'socket[UNIX socket to listen on.]::file:_files' + 'method[prefork or threaded (default prefork)]:method:(prefork threaded)' + 'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:' + 'maxspare[max number of spare processes / threads.]:' + 'minspare[min number of spare processes / threads.]:' + 'maxchildren[hard limit number of processes / threads.]:' + 'daemonize[whether to detach from terminal.]:boolean:(False True)' + 'pidfile[write the spawned process-id to this file.]:file:_files' + 'workdir[change to this directory when daemonizing.]:directory:_files' + 'outlog[write stdout to this file.]:file:_files' + 'errlog[write stderr to this file.]:file:_files' + ) + + _arguments -s : \ + $nul_args \ + '*: :_values "FCGI Setting" $fcgi_opts' && ret=0 +} + +_managepy-runserver(){ + _arguments -s : \ + '--noreload[tells Django to NOT use the auto-reloader.]' \ + '--adminmedia[specifies the directory from which to serve admin media.]:directory:_files' \ + $nul_args && ret=0 +} + +_managepy-shell(){ + _arguments -s : \ + '--plain[tells Django to use plain Python, not IPython.]' \ + $nul_args && ret=0 +} + +_managepy-sql(){} +_managepy-sqlall(){} +_managepy-sqlclear(){} +_managepy-sqlcustom(){} +_managepy-sqlflush(){} +_managepy-sqlindexes(){} +_managepy-sqlinitialdata(){} +_managepy-sqlreset(){} +_managepy-sqlsequencereset(){} +_managepy-startapp(){} + +_managepy-syncdb() { + _arguments -s : \ + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + $nul_args && ret=0 +} + +_managepy-test() { + _arguments -s : \ + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '--noinput[tells Django to NOT prompt the user for input of any kind.]' \ + '*::appname:_applist' \ + $nul_args && ret=0 +} + +_managepy-testserver() { + _arguments -s : \ + '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ + '--addrport=-[port number or ipaddr:port to run the server on.]' \ + '*::fixture:_files' \ + $nul_args && ret=0 +} + +_managepy-validate() { + _arguments -s : \ + $nul_args && ret=0 +} + +_managepy-commands() { + local -a commands + + commands=( + 'adminindex:prints the admin-index template snippet for the given app name(s).' + 'createcachetable:creates the table needed to use the SQL cache backend.' + 'dbshell:runs the command-line client for the current DATABASE_ENGINE.' + "diffsettings:displays differences between the current settings.py and Django's default settings." + 'dumpdata:Output the contents of the database as a fixture of the given format.' + 'flush:Executes ``sqlflush`` on the current database.' + 'help:manage.py help.' + 'inspectdb:Introspects the database tables in the given database and outputs a Django model module.' + 'loaddata:Installs the named fixture(s) in the database.' + 'reset:Executes ``sqlreset`` for the given app(s) in the current database.' + 'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,' + 'runserver:Starts a lightweight Web server for development.' + 'shell:Runs a Python interactive interpreter.' + 'sql:Prints the CREATE TABLE SQL statements for the given app name(s).' + 'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).' + 'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).' + 'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).' + 'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.' + 'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).' + "sqlinitialdata:RENAMED: see 'sqlcustom'" + 'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).' + 'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).' + "startapp:Creates a Django app directory structure for the given app name in this project's directory." + "syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." + 'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.' + 'testserver:Runs a development server with data from the given fixture(s).' + 'validate:Validates all installed models.' + ) + + _describe -t commands 'manage.py command' commands && ret=0 +} + +_applist() { + local line + local -a apps + _call_program help-command "python -c \"import os.path as op, re, django.conf, sys;\\ + bn=op.basename(op.abspath(op.curdir));[sys\\ + .stdout.write(str(re.sub(r'^%s\.(.*?)$' % + bn, r'\1', i)) + '\n') for i in django.conf.settings.\\ + INSTALLED_APPS if re.match(r'^%s' % bn, i)]\"" \ + | while read -A line; do apps=($line $apps) done + _values 'Application' $apps && ret=0 +} + +_managepy() { + local curcontext=$curcontext ret=1 + + if ((CURRENT == 2)); then + _managepy-commands + else + shift words + (( CURRENT -- )) + curcontext="${curcontext%:*:*}:managepy-$words[1]:" + _call_function ret _managepy-$words[1] + fi +} + +compdef _managepy manage.py +compdef _managepy django -- cgit v1.2.3-70-g09d2 From e43eec99f94c00a6a9d2b30f9c449aff5ab0dfe5 Mon Sep 17 00:00:00 2001 From: Matthew McCullough Date: Tue, 28 Jun 2011 19:42:50 -0600 Subject: Added cloudapp from @holman of @GitHub fame --- plugins/cloudapp/cloudapp.plugin.zsh | 2 ++ plugins/cloudapp/cloudapp.rb | 60 ++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 plugins/cloudapp/cloudapp.plugin.zsh create mode 100755 plugins/cloudapp/cloudapp.rb (limited to 'plugins') diff --git a/plugins/cloudapp/cloudapp.plugin.zsh b/plugins/cloudapp/cloudapp.plugin.zsh new file mode 100644 index 000000000..99252f690 --- /dev/null +++ b/plugins/cloudapp/cloudapp.plugin.zsh @@ -0,0 +1,2 @@ +#!/bin/zsh +alias cloudapp=$ZSH/plugins/cloudapp/cloudapp.rb diff --git a/plugins/cloudapp/cloudapp.rb b/plugins/cloudapp/cloudapp.rb new file mode 100755 index 000000000..a11cfdb32 --- /dev/null +++ b/plugins/cloudapp/cloudapp.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +# +# cloudapp +# Zach Holman / @holman +# +# Uploads a file from the command line to CloudApp, drops it into your +# clipboard (on a Mac, at least). +# +# Example: +# +# cloudapp drunk-blake.png +# +# This requires Aaron Russell's cloudapp_api gem: +# +# gem install cloudapp_api +# +# Requires you set your CloudApp credentials in ~/.cloudapp as a simple file of: +# +# email +# password + +require 'rubygems' +begin + require 'cloudapp_api' +rescue LoadError + puts "You need to install cloudapp_api: gem install cloudapp_api" + exit!(1) +end + +config_file = "#{ENV['HOME']}/.cloudapp" +unless File.exist?(config_file) + puts "You need to type your email and password (one per line) into "+ + "`~/.cloudapp`" + exit!(1) +end + +email,password = File.read(config_file).split("\n") + +class HTTParty::Response + # Apparently HTTPOK.ok? IS NOT OKAY WTFFFFFFFFFFUUUUUUUUUUUUUU + # LETS MONKEY PATCH IT I FEEL OKAY ABOUT IT + def ok? ; true end +end + +if ARGV[0].nil? + puts "You need to specify a file to upload." + exit!(1) +end + +CloudApp.authenticate(email,password) +url = CloudApp::Item.create(:upload, {:file => ARGV[0]}).url + +# Say it for good measure. +puts "Uploaded to #{url}." + +# Get the embed link. +url = "#{url}/#{ARGV[0].split('/').last}" + +# Copy it to your (Mac's) clipboard. +`echo '#{url}' | tr -d "\n" | pbcopy` -- cgit v1.2.3-70-g09d2 From b61fcb64abfd733a95f0e83e3009086959623252 Mon Sep 17 00:00:00 2001 From: Frank Louwers Date: Thu, 30 Jun 2011 15:19:50 +0200 Subject: knife autocompletion --- plugins/knife/_knife | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 plugins/knife/_knife (limited to 'plugins') diff --git a/plugins/knife/_knife b/plugins/knife/_knife new file mode 100644 index 000000000..7f8c95ee5 --- /dev/null +++ b/plugins/knife/_knife @@ -0,0 +1,174 @@ +#compdef knife + +# These flags should be available everywhere according to man knife +knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes ) + +# knife has a very special syntax, some example calls are: +# knife status +# knife cookbook list +# knife role show ROLENAME +# knife data bag show DATABAGNAME +# knife role show ROLENAME --attribute ATTRIBUTENAME +# knife cookbook show COOKBOOKNAME COOKBOOKVERSION recipes + +# The -Q switch in compadd allow for completions of things like "data bag" without having to go through two rounds of completion and avoids zsh inserting a \ for escaping spaces +_knife() { + local curcontext="$curcontext" state line + typeset -A opt_args + cloudproviders=(bluebox ec2 rackspace slicehost terremark) + _arguments \ + '1: :->knifecmd'\ + '2: :->knifesubcmd'\ + '3: :->knifesubcmd2' \ + '4: :->knifesubcmd3' \ + '5: :->knifesubcmd4' \ + '6: :->knifesubcmd5' + + case $state in + knifecmd) + compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders + ;; + knifesubcmd) + case $words[2] in + (bluebox|ec2|rackspace|slicehost|terremark) + compadd "$@" server images + ;; + client) + compadd -Q "$@" "bulk delete" list create show delete edit reregister + ;; + configure) + compadd "$@" client + ;; + cookbook) + compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload + ;; + node) + compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete" + ;; + recipe) + compadd "$@" list + ;; + role) + compadd -Q "$@" "bulk delete" create delete edit "from file" list show + ;; + windows) + compadd "$@" bootstrap + ;; + *) + _arguments '2:Subsubcommands:($(_knife_options1))' + esac + ;; + knifesubcmd2) + case $words[3] in + server) + compadd "$@" list create delete + ;; + images) + compadd "$@" list + ;; + site) + compadd "$@" vendor show share search download list unshare + ;; + (show|delete|edit) + _arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))' + ;; + (upload|test) + _arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)' + ;; + list) + compadd -a "$@" knife_general_flags + ;; + bag) + compadd -Q "$@" show edit list "from file" create delete + ;; + *) + _arguments '3:Subsubcommands:($(_knife_options2))' + esac + ;; + knifesubcmd3) + case $words[3] in + show) + case $words[2] in + cookbook) + versioncomp=1 + _arguments '4:Cookbookversions:($(_cookbook_versions) latest)' + ;; + (node|client|role) + compadd "$@" --attribute + esac + esac + case $words[4] in + (show|edit) + _arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))' + ;; + file) + _arguments '*:file or directory:_files -g "*.(rb|json)"' + ;; + list) + compadd -a "$@" knife_general_flags + ;; + *) + _arguments '*:Subsubcommands:($(_knife_options3))' + esac + ;; + knifesubcmd4) + if (( versioncomp > 0 )); then + compadd "$@" attributes definitions files libraries providers recipes resources templates + else + _arguments '*:Subsubcommands:($(_knife_options2))' + fi + ;; + knifesubcmd5) + _arguments '*:Subsubcommands:($(_knife_options3))' + esac +} + +# Helper functions to provide the argument completion for several depths of commands +_knife_options1() { + ( for line in $( knife $words[2] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) +} + +_knife_options2() { + ( for line in $( knife $words[2] $words[3] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) +} + +_knife_options3() { + ( for line in $( knife $words[2] $words[3] $words[4] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) +} + +# The chef_x_remote functions use knife to get a list of objects of type x on the server +_chef_roles_remote() { + (knife role list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +_chef_clients_remote() { + (knife client list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +_chef_nodes_remote() { + (knife node list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +_chef_cookbooks_remote() { + (knife cookbook list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +_chef_sitecookbooks_remote() { + (knife cookbook site list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +_chef_data_bags_remote() { + (knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') +} + +# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server +_chef_cookbooks_local() { + (for i in $( grep cookbook_path $HOME/.chef/knife.rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done) +} + +# This function extracts the available cookbook versions on the chef server +_cookbook_versions() { + (knife cookbook show $words[4] | grep -v $words[4] | grep -v -E '\]|\[|\{|\}' | sed 's/ //g' | sed 's/"//g') +} + +_knife "$@" -- cgit v1.2.3-70-g09d2 From 9e8194355c1a4f69dc52fbe2699fbce1be5c6493 Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Jun 2011 13:13:39 +0200 Subject: Added bundler-exec plugin --- plugins/bundler-exec/bundler-exec.plugin.zsh | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 plugins/bundler-exec/bundler-exec.plugin.zsh (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh new file mode 100644 index 000000000..966725976 --- /dev/null +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -0,0 +1,37 @@ +# This plugin is based on https://github.com/gma/bundler-exec +# modify the BUNDLED_COMMANDS if needed + +BUNDLED_COMMANDS=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) + +## Functions + +bundler-installed() +{ + which bundle > /dev/null 2>&1 +} + +within-bundled-project() +{ + local dir="$(pwd)" + while [ "$(dirname $dir)" != "/" ]; do + [ -f "$dir/Gemfile" ] && return + dir="$(dirname $dir)" + done + false +} + +run-with-bundler() +{ + local command="$1" + shift + if bundler-installed && within-bundled-project; then + bundle exec $command "$@" + else + $command "$@" + fi +} + +## Main program +for CMD in $BUNDLED_COMMANDS; do + alias $CMD="run-with-bundler $CMD" +done -- cgit v1.2.3-70-g09d2 From 05883f383143fa4821a5b07a748a800c0299f1fd Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Jun 2011 15:52:58 +0200 Subject: use lowercase for variablenames --- plugins/bundler-exec/bundler-exec.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index 966725976..cfab16c5e 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -1,7 +1,7 @@ # This plugin is based on https://github.com/gma/bundler-exec # modify the BUNDLED_COMMANDS if needed -BUNDLED_COMMANDS=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) +bundled_commands=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) ## Functions @@ -32,6 +32,6 @@ run-with-bundler() } ## Main program -for CMD in $BUNDLED_COMMANDS; do - alias $CMD="run-with-bundler $CMD" +for cmd in $bundled_commands; do + alias $cmd="run-with-bundler $cmd" done -- cgit v1.2.3-70-g09d2 From 3aee5c19412dea541495e10f1c4cc7a6d8e4af50 Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Jun 2011 19:16:04 +0200 Subject: changed names of functions and variables to fit naming conventions --- plugins/bundler-exec/bundler-exec.plugin.zsh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index cfab16c5e..4684dcb8d 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -5,26 +5,26 @@ bundled_commands=(cucumber heroku rackup rails rake rspec ruby shotgun spec spor ## Functions -bundler-installed() +_bundler-installed() { which bundle > /dev/null 2>&1 } -within-bundled-project() +_within-bundled-project() { - local dir="$(pwd)" - while [ "$(dirname $dir)" != "/" ]; do - [ -f "$dir/Gemfile" ] && return - dir="$(dirname $dir)" + local check_dir=$PWD + while [ "$(dirname $check_dir)" != "/" ]; do + [ -f "$check_dir/Gemfile" ] && return + dir="$(dirname $check_dir)" done false } -run-with-bundler() +_run-with-bundler() { local command="$1" shift - if bundler-installed && within-bundled-project; then + if _bundler-installed && _within-bundled-project; then bundle exec $command "$@" else $command "$@" @@ -33,5 +33,5 @@ run-with-bundler() ## Main program for cmd in $bundled_commands; do - alias $cmd="run-with-bundler $cmd" + alias $cmd="_run-with-bundler $cmd" done -- cgit v1.2.3-70-g09d2 From 86958a32f3d3e647fc61e92700a9ce393e11a3cb Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Jun 2011 20:28:27 +0200 Subject: forgot to rename one variable --- plugins/bundler-exec/bundler-exec.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index 4684dcb8d..bc4d35a84 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -15,7 +15,7 @@ _within-bundled-project() local check_dir=$PWD while [ "$(dirname $check_dir)" != "/" ]; do [ -f "$check_dir/Gemfile" ] && return - dir="$(dirname $check_dir)" + check_dir="$(dirname $check_dir)" done false } @@ -27,7 +27,7 @@ _run-with-bundler() if _bundler-installed && _within-bundled-project; then bundle exec $command "$@" else - $command "$@" + $command "$@" fi } -- cgit v1.2.3-70-g09d2 From 69d30a6302f8c7daf6ad5ecf23224074789843db Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Jun 2011 23:16:47 +0200 Subject: Moved opening braces --- plugins/bundler-exec/bundler-exec.plugin.zsh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index bc4d35a84..09f44ed5e 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -1,17 +1,15 @@ # This plugin is based on https://github.com/gma/bundler-exec -# modify the BUNDLED_COMMANDS if needed +# modify the bundled_commands if needed bundled_commands=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) ## Functions -_bundler-installed() -{ +_bundler-installed() { which bundle > /dev/null 2>&1 } -_within-bundled-project() -{ +_within-bundled-project() { local check_dir=$PWD while [ "$(dirname $check_dir)" != "/" ]; do [ -f "$check_dir/Gemfile" ] && return @@ -20,8 +18,7 @@ _within-bundled-project() false } -_run-with-bundler() -{ +_run-with-bundler() { local command="$1" shift if _bundler-installed && _within-bundled-project; then -- cgit v1.2.3-70-g09d2 From 37fcd4af049ad9b755d7b1d32cf63b537da0342c Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 13 Jul 2011 22:39:23 +0100 Subject: update bundled commands --- plugins/bundler-exec/bundler-exec.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index 09f44ed5e..61829eb2c 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -1,7 +1,7 @@ # This plugin is based on https://github.com/gma/bundler-exec # modify the bundled_commands if needed -bundled_commands=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) +bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) ## Functions -- cgit v1.2.3-70-g09d2 From a77e6fb003cc80fbbff5d453a5ca3d38638d99ed Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 13 Jul 2011 22:40:23 +0100 Subject: fix indentation --- plugins/bundler-exec/bundler-exec.plugin.zsh | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh index 61829eb2c..3417ea81c 100644 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -6,29 +6,29 @@ bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgu ## Functions _bundler-installed() { - which bundle > /dev/null 2>&1 + which bundle > /dev/null 2>&1 } _within-bundled-project() { - local check_dir=$PWD - while [ "$(dirname $check_dir)" != "/" ]; do - [ -f "$check_dir/Gemfile" ] && return - check_dir="$(dirname $check_dir)" - done - false + local check_dir=$PWD + while [ "$(dirname $check_dir)" != "/" ]; do + [ -f "$check_dir/Gemfile" ] && return + check_dir="$(dirname $check_dir)" + done + false } _run-with-bundler() { - local command="$1" - shift - if _bundler-installed && _within-bundled-project; then - bundle exec $command "$@" - else - $command "$@" - fi + local command="$1" + shift + if _bundler-installed && _within-bundled-project; then + bundle exec $command "$@" + else + $command "$@" + fi } ## Main program for cmd in $bundled_commands; do - alias $cmd="_run-with-bundler $cmd" + alias $cmd="_run-with-bundler $cmd" done -- cgit v1.2.3-70-g09d2 From 60e104acd1710c04057d079cfa5ac9316762f580 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 13 Jul 2011 22:41:09 +0100 Subject: merge bundler and bundle-exec plugins --- plugins/bundler-exec/bundler-exec.plugin.zsh | 34 ---------------------------- plugins/bundler/bundler.plugin.zsh | 34 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 plugins/bundler-exec/bundler-exec.plugin.zsh (limited to 'plugins') diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh deleted file mode 100644 index 3417ea81c..000000000 --- a/plugins/bundler-exec/bundler-exec.plugin.zsh +++ /dev/null @@ -1,34 +0,0 @@ -# This plugin is based on https://github.com/gma/bundler-exec -# modify the bundled_commands if needed - -bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) - -## Functions - -_bundler-installed() { - which bundle > /dev/null 2>&1 -} - -_within-bundled-project() { - local check_dir=$PWD - while [ "$(dirname $check_dir)" != "/" ]; do - [ -f "$check_dir/Gemfile" ] && return - check_dir="$(dirname $check_dir)" - done - false -} - -_run-with-bundler() { - local command="$1" - shift - if _bundler-installed && _within-bundled-project; then - bundle exec $command "$@" - else - $command "$@" - fi -} - -## Main program -for cmd in $bundled_commands; do - alias $cmd="_run-with-bundler $cmd" -done diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index fb40e2cec..fcf3e85fc 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,3 +1,37 @@ alias be="bundle exec" alias bi="bundle install" alias bu="bundle update" + +# The following is based on https://github.com/gma/bundler-exec + +bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) + +## Functions + +_bundler-installed() { + which bundle > /dev/null 2>&1 +} + +_within-bundled-project() { + local check_dir=$PWD + while [ "$(dirname $check_dir)" != "/" ]; do + [ -f "$check_dir/Gemfile" ] && return + check_dir="$(dirname $check_dir)" + done + false +} + +_run-with-bundler() { + local command="$1" + shift + if _bundler-installed && _within-bundled-project; then + bundle exec $command "$@" + else + $command "$@" + fi +} + +## Main program +for cmd in $bundled_commands; do + alias $cmd="_run-with-bundler $cmd" +done -- cgit v1.2.3-70-g09d2 From ba5fa3abc8ccf1f05e48c9b201282792c956c337 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 13 Jul 2011 22:41:36 +0100 Subject: alias bundle list --- plugins/bundler/bundler.plugin.zsh | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins') diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index fcf3e85fc..c91dc9ab9 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,5 +1,6 @@ alias be="bundle exec" alias bi="bundle install" +alias bl="bundle list" alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -- cgit v1.2.3-70-g09d2 From 7d19ae8fab80c826156f984aa6dd8221a9aaada0 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 13 Jul 2011 22:42:44 +0100 Subject: clean up rails plugin, removing bundler-specific logic --- plugins/rails3/rails3.plugin.zsh | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'plugins') diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index f669ef047..f4ee637e6 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -1,13 +1,5 @@ # Rails 3 aliases, backwards-compatible with Rails 2. -function _bundle_command { - if command -v bundle && [ -e "Gemfile" ]; then - bundle exec $@ - else - $@ - fi -} - function _rails_command () { if [ -e "script/server" ]; then ruby script/$@ @@ -25,6 +17,3 @@ alias rp='_rails_command plugin' alias rs='_rails_command server' alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' - -alias rspec='_bundle_command rspec' -alias cuke='_bundle_command cucumber' -- cgit v1.2.3-70-g09d2 From 913cf5325264960d4c1dfe678a2adadeaecdbf6a Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Thu, 14 Jul 2011 17:34:18 +0100 Subject: refactor _run-with-bundler --- plugins/bundler/bundler.plugin.zsh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index c91dc9ab9..e98bb4b46 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -23,12 +23,10 @@ _within-bundled-project() { } _run-with-bundler() { - local command="$1" - shift if _bundler-installed && _within-bundled-project; then - bundle exec $command "$@" + bundle exec $@ else - $command "$@" + $@ fi } -- cgit v1.2.3-70-g09d2 From 66c6260c10422bf50c474c9654a7928ce99e7ceb Mon Sep 17 00:00:00 2001 From: Paul Serby Date: Sat, 16 Jul 2011 16:15:15 +0100 Subject: Completion for cake the coffee-script build tool --- plugins/cake/cake.plugin.zsh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 plugins/cake/cake.plugin.zsh (limited to 'plugins') diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh new file mode 100644 index 000000000..75997521a --- /dev/null +++ b/plugins/cake/cake.plugin.zsh @@ -0,0 +1,32 @@ +# Set this to 1 if you want to cache the tasks +cacheTaskList=1 + +# Cache filename +cacheFile='.cake-task-cache' + +_cake_does_target_list_need_generating () { + + if [ $cacheTaskList -eq 0 ]; then + return 1; + fi + + if [ ! -f $cacheFile ]; then return 0; + else + accurate=$(stat -f%m $cacheFile) + changed=$(stat -f%m Cakefile) + return $(expr $accurate '>=' $changed) + fi +} + +_cake () { + if [ -f Cakefile ]; then + if _cake_does_target_list_need_generating; then + cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cacheFile + compadd `cat $cacheFile` + else + compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'` + fi + fi +} + +compdef _cake cake -- cgit v1.2.3-70-g09d2 From e7e9e5bbe608fd7572a810f36e7f1b3321c25136 Mon Sep 17 00:00:00 2001 From: Benjamin Boudreau Date: Sat, 16 Jul 2011 18:42:09 -0400 Subject: Added archlinux plugin --- plugins/archlinux/archlinux.plugin.zsh | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 plugins/archlinux/archlinux.plugin.zsh (limited to 'plugins') diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh new file mode 100644 index 000000000..acb8df057 --- /dev/null +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -0,0 +1,67 @@ +# Archlinux zsh aliases and functions for zsh + +# Aliases ################################################################### + +# Look for yaourt, and add some useful functions if we have it. +if [[ -x `which yaourt` ]]; then + upgrade () { + yaourt -Syu -C + } + # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips + alias yaupg='sudo yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. + alias yain='sudo yaourt -S' # Install specific package(s) from the repositories + alias yains='sudo yaourt -U' # Install specific package not from the repositories but from a file + alias yare='sudo yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies + alias yarem='sudo yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies + alias yarep='yaourt -Si' # Display information about a given package in the repositories + alias yareps='yaourt -Ss' # Search for package(s) in the repositories + alias yaloc='yaourt -Qi' # Display information about a given package in the local database + alias yalocs='yaourt -Qs' # Search for package(s) in the local database + # Additional yaourt alias examples + alias yaupd='sudo yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories + alias yainsd='sudo yaourt -S --asdeps' # Install given package(s) as dependencies of another package + alias yamir='sudo yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist +else + upgrade() { + sudo pacman -Syu + } +fi + +# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips +alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. +alias pacin='sudo pacman -S' # Install specific package(s) from the repositories +alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file +alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies +alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies +alias pacrep='pacman -Si' # Display information about a given package in the repositories +alias pacreps='pacman -Ss' # Search for package(s) in the repositories +alias pacloc='pacman -Qi' # Display information about a given package in the local database +alias paclocs='pacman -Qs' # Search for package(s) in the local database +# Additional pacman alias examples +alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +alias pacinsd='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package +alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist + +# https://bbs.archlinux.org/viewtopic.php?id=93683 +paclist() { + sudo pacman -Qei $(pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' +} +alias paclsorhpans='sudo pacman -Qdt' +alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' + +pacdisowned() { + tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ + db=$tmp/db + fs=$tmp/fs + + mkdir "$tmp" + trap 'rm -rf "$tmp"' EXIT + + pacman -Qlq | sort -u > "$db" + + find /bin /etc /lib /sbin /usr \ + ! -name lost+found \ + \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" + + comm -23 "$fs" "$db" +} -- cgit v1.2.3-70-g09d2 From 127d2ae57b01ae13dd6017c3c104a45a0086e88e Mon Sep 17 00:00:00 2001 From: alexandru totolici Date: Sun, 17 Jul 2011 21:01:06 -0700 Subject: Fixed typo for one of the subcommands (linset -> linsert) --- plugins/redis-cli/_redis-cli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/redis-cli/_redis-cli b/plugins/redis-cli/_redis-cli index 3789add18..1569f2916 100644 --- a/plugins/redis-cli/_redis-cli +++ b/plugins/redis-cli/_redis-cli @@ -51,7 +51,7 @@ _1st_arguments=( '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' - 'linset:insert an element before or after another element in a list' + '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' -- cgit v1.2.3-70-g09d2 From c09e2f2986aafbf2a67004f8df6b5dd10abb8d61 Mon Sep 17 00:00:00 2001 From: Paul Serby Date: Mon, 18 Jul 2011 16:05:05 +0100 Subject: Bringing inline with oh-my-zsh coding convensions --- plugins/cake/cake.plugin.zsh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'plugins') diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index 75997521a..f968c71d5 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/plugins/cake/cake.plugin.zsh @@ -1,18 +1,18 @@ # Set this to 1 if you want to cache the tasks -cacheTaskList=1 +cache_task_list=1 # Cache filename -cacheFile='.cake-task-cache' +cache_file='.cake_task_cache' _cake_does_target_list_need_generating () { - if [ $cacheTaskList -eq 0 ]; then + if [ $cache_task_list -eq 0 ]; then return 1; fi - if [ ! -f $cacheFile ]; then return 0; + if [ ! -f $cache_file ]; then return 0; else - accurate=$(stat -f%m $cacheFile) + accurate=$(stat -f%m $cache_file) changed=$(stat -f%m Cakefile) return $(expr $accurate '>=' $changed) fi @@ -21,8 +21,8 @@ _cake_does_target_list_need_generating () { _cake () { if [ -f Cakefile ]; then if _cake_does_target_list_need_generating; then - cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cacheFile - compadd `cat $cacheFile` + cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file + compadd `cat $cache_file` else compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'` fi -- cgit v1.2.3-70-g09d2 From 8e77ad468dd22f25c461a0f69f9c03cbb2fb2d05 Mon Sep 17 00:00:00 2001 From: Benjamin Boudreau Date: Tue, 19 Jul 2011 19:38:29 -0700 Subject: Fix typo --- plugins/archlinux/archlinux.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index acb8df057..8ed291fcf 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -46,7 +46,8 @@ alias pacmir='sudo pacman -Syy' # Force refresh of all package li paclist() { sudo pacman -Qei $(pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' } -alias paclsorhpans='sudo pacman -Qdt' + +alias paclsorphans='sudo pacman -Qdt' alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' pacdisowned() { -- cgit v1.2.3-70-g09d2 From 512f3678c07accd6d121e9c0d6d50f008c99708a Mon Sep 17 00:00:00 2001 From: Benjamin Boudreau Date: Sat, 23 Jul 2011 11:22:39 -0400 Subject: Remove sudo when using yaourt + do not rely on abs when not in path - In archlinux plugin --- plugins/archlinux/archlinux.plugin.zsh | 42 ++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'plugins') diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 8ed291fcf..b5e519036 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -1,26 +1,30 @@ -# Archlinux zsh aliases and functions for zsh - -# Aliases ################################################################### +# Archlinux zsh aliases and functions +# Usage is also described at https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins # Look for yaourt, and add some useful functions if we have it. if [[ -x `which yaourt` ]]; then upgrade () { - yaourt -Syu -C + yaourt -Syu } + alias yaconf='yaourt -C' # Fix all configuration files with vimdiff # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips - alias yaupg='sudo yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. - alias yain='sudo yaourt -S' # Install specific package(s) from the repositories - alias yains='sudo yaourt -U' # Install specific package not from the repositories but from a file - alias yare='sudo yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies - alias yarem='sudo yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies - alias yarep='yaourt -Si' # Display information about a given package in the repositories - alias yareps='yaourt -Ss' # Search for package(s) in the repositories - alias yaloc='yaourt -Qi' # Display information about a given package in the local database - alias yalocs='yaourt -Qs' # Search for package(s) in the local database + alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. + alias yain='yaourt -S' # Install specific package(s) from the repositories + alias yains='yaourt -U' # Install specific package not from the repositories but from a file + alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies + alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies + alias yarep='yaourt -Si' # Display information about a given package in the repositories + alias yareps='yaourt -Ss' # Search for package(s) in the repositories + alias yaloc='yaourt -Qi' # Display information about a given package in the local database + alias yalocs='yaourt -Qs' # Search for package(s) in the local database # Additional yaourt alias examples - alias yaupd='sudo yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories - alias yainsd='sudo yaourt -S --asdeps' # Install given package(s) as dependencies of another package - alias yamir='sudo yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist + if [[ -x `which abs` ]]; then + alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories + else + alias yaupd='yaourt -Sy' # Update and refresh the local package and ABS databases against repositories + fi + alias yainsd='yaourt -S --asdeps' # Install given package(s) as dependencies of another package + alias yamir='yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist else upgrade() { sudo pacman -Syu @@ -38,7 +42,11 @@ alias pacreps='pacman -Ss' # Search for package(s) in the repositori alias pacloc='pacman -Qi' # Display information about a given package in the local database alias paclocs='pacman -Qs' # Search for package(s) in the local database # Additional pacman alias examples -alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +if [[ -x `which abs` ]]; then + alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +else + alias pacupd='sudo pacman -Sy' # Update and refresh the local package and ABS databases against repositories +fi alias pacinsd='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist -- cgit v1.2.3-70-g09d2 From 6bb0c1c9269025867e886b76bcbf737e5a54400d Mon Sep 17 00:00:00 2001 From: Sven Lito Date: Mon, 11 Oct 2010 02:43:51 +0100 Subject: added git log with graph --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index bc340e86b..0c94cc99e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -27,6 +27,8 @@ alias gcp='git cherry-pick' compdef _git gcp=git-cherry-pick alias glg='git log --stat --max-count=5' compdef _git glg=git-log +alias glgg='git log --graph --max-count=5' +compdef _git glgg=git-log # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' -- cgit v1.2.3-70-g09d2 From 96b0af68242ec6235e4162f5e7e1f4d470cb2b22 Mon Sep 17 00:00:00 2001 From: Sven Lito Date: Sat, 9 Oct 2010 23:09:42 +0100 Subject: adding git svn aliases --- plugins/git/git.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 0c94cc99e..3721d3343 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -34,6 +34,8 @@ compdef _git glgg=git-log alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' compdef git-svn-dcommit-push=git +alias gsr='git svn rebase' +alias gsd='git svn dcommit' # # Will return the current branch name # Usage example: git pull origin $(current_branch) @@ -47,6 +49,10 @@ function current_branch() { alias ggpull='git pull origin $(current_branch)' compdef ggpull=git alias ggpush='git push origin $(current_branch)' +<<<<<<< HEAD compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' compdef ggpnp=git +======= +alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' +>>>>>>> e5e032f... adding git svn aliases -- cgit v1.2.3-70-g09d2 From 9e783c0a8e276e89d9d81951a4c32ea61dadccf1 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sat, 23 Jul 2011 09:14:44 -0700 Subject: fixing issue with last commit merge. missed a conflict --- plugins/git/git.plugin.zsh | 4 ---- 1 file changed, 4 deletions(-) (limited to 'plugins') diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 3721d3343..5132b639a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -49,10 +49,6 @@ function current_branch() { alias ggpull='git pull origin $(current_branch)' compdef ggpull=git alias ggpush='git push origin $(current_branch)' -<<<<<<< HEAD compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' compdef ggpnp=git -======= -alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' ->>>>>>> e5e032f... adding git svn aliases -- cgit v1.2.3-70-g09d2 From 3cb33fc254290a848a602af634cfa26179d630e5 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 25 Jul 2011 09:46:17 +1000 Subject: Replace a duplicated test to see if we're in an SVN folder with a call to the 'in_svn' function. --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 86050227d..77de27481 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,5 +1,5 @@ function svn_prompt_info { - if [[ -d .svn ]]; then + if [ in_svn ]; then 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" fi -- cgit v1.2.3-70-g09d2 From 7b25a3fca90e31f2c272fd8d2ef1dfa3e61dc9e4 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 25 Jul 2011 09:50:54 +1000 Subject: The original SVN pluging would mark a folder as dirty if there was an svn:external set and the output of 'svn status' returned the check for the external. E.g. $ svn st X Application Performing status on external item at 'Application' Shouldn't be marked as being dirty. By grepping for only the valid output for what should be class as dirty, it won't return false positives. --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 77de27481..53a8a513a 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -28,7 +28,7 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ in_svn ]; then - s=$(svn status 2>/dev/null) + s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) if [ $s ]; then echo $1 else -- cgit v1.2.3-70-g09d2 From 6bf468f92c9302f84d3b21358202c3a956cad02b Mon Sep 17 00:00:00 2001 From: Shane Emmons Date: Mon, 25 Jul 2011 08:02:25 -0700 Subject: add alias for `bundle package` to the bundler plugin --- plugins/bundler/bundler.plugin.zsh | 1 + 1 file changed, 1 insertion(+) (limited to 'plugins') diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index e98bb4b46..f005700ff 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -2,6 +2,7 @@ alias be="bundle exec" alias bi="bundle install" alias bl="bundle list" alias bu="bundle update" +alias bp="bundle package" # The following is based on https://github.com/gma/bundler-exec -- cgit v1.2.3-70-g09d2 From fd732eb3ff4984ddc9109e950cf7ceb472cb9824 Mon Sep 17 00:00:00 2001 From: "Suraj N. Kurapati" Date: Wed, 27 Jul 2011 10:28:55 -0700 Subject: move history-substring-search* files into plugins/ --- README | 7 - history-substring-search.plugin.zsh | 12 - history-substring-search.zsh | 642 --------------------- plugins/history-substring-search/README | 7 + .../history-substring-search.plugin.zsh | 12 + .../history-substring-search.zsh | 642 +++++++++++++++++++++ 6 files changed, 661 insertions(+), 661 deletions(-) delete mode 100644 README delete mode 100644 history-substring-search.plugin.zsh delete mode 100644 history-substring-search.zsh create mode 100644 plugins/history-substring-search/README create mode 100644 plugins/history-substring-search/history-substring-search.plugin.zsh create mode 100644 plugins/history-substring-search/history-substring-search.zsh (limited to 'plugins') diff --git a/README b/README deleted file mode 100644 index be11adf76..000000000 --- a/README +++ /dev/null @@ -1,7 +0,0 @@ -To activate this script, load it into an interactive ZSH session: - - % source history-substring-search.zsh - -See the "history-substring-search.zsh" file for more information: - - % sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more diff --git a/history-substring-search.plugin.zsh b/history-substring-search.plugin.zsh deleted file mode 100644 index 99a5922c5..000000000 --- a/history-substring-search.plugin.zsh +++ /dev/null @@ -1,12 +0,0 @@ -# This file integrates the history-substring-search script into oh-my-zsh. - -source "$ZSH/plugins/history-substring-search/history-substring-search.zsh" - -if test "$CASE_SENSITIVE" = true; then - unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS -fi - -if test "$DISABLE_COLOR" = true; then - unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND -fi diff --git a/history-substring-search.zsh b/history-substring-search.zsh deleted file mode 100644 index 53f707c79..000000000 --- a/history-substring-search.zsh +++ /dev/null @@ -1,642 +0,0 @@ -#!/usr/bin/env zsh -# -# This is a clean-room implementation of the Fish[1] shell's history search -# feature, where you can type in any part of any previously entered command -# and press the UP and DOWN arrow keys to cycle through the matching commands. -# -#----------------------------------------------------------------------------- -# Usage -#----------------------------------------------------------------------------- -# -# 1. Load this script into your interactive ZSH session: -# -# % source history-substring-search.zsh -# -# If you want to use the zsh-syntax-highlighting[6] script along with this -# script, then make sure that you load it *before* you load this script: -# -# % source zsh-syntax-highlighting.zsh -# % source history-substring-search.zsh -# -# 2. Type any part of any previous command and then: -# -# * Press the UP arrow key to select the nearest command that (1) contains -# your query and (2) is older than the current command in the command -# history. -# -# * Press the DOWN arrow key to select the nearest command that (1) -# contains your query and (2) is newer than the current command in the -# command history. -# -# * Press ^U (the Control and U keys simultaneously) to abort the search. -# -# 3. If a matching command spans more than one line of text, press the LEFT -# arrow key to move the cursor away from the end of the command, and then: -# -# * Press the UP arrow key to move the cursor to the line above. When the -# cursor reaches the first line of the command, pressing the UP arrow -# key again will cause this script to perform another search. -# -# * Press the DOWN arrow key to move the cursor to the line below. When -# the cursor reaches the last line of the command, pressing the DOWN -# arrow key again will cause this script to perform another search. -# -#----------------------------------------------------------------------------- -# Configuration -#----------------------------------------------------------------------------- -# -# This script defines the following global variables. You may override their -# default values only after having loaded this script into your ZSH session. -# -# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND is a global variable that defines -# how the query should be highlighted inside a matching command. Its default -# value causes this script to highlight using bold, white text on a magenta -# background. See the "Character Highlighting" section in the zshzle(1) man -# page to learn about the kinds of values you may assign to this variable. -# -# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND is a global variable that -# defines how the query should be highlighted when no commands in the -# history match it. Its default value causes this script to highlight using -# bold, white text on a red background. See the "Character Highlighting" -# section in the zshzle(1) man page to learn about the kinds of values you -# may assign to this variable. -# -# * HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS is a global variable that defines -# how the command history will be searched for your query. Its default value -# causes this script to perform a case-insensitive search. See the "Globbing -# Flags" section in the zshexpn(1) man page to learn about the kinds of -# values you may assign to this variable. -# -#----------------------------------------------------------------------------- -# History -#----------------------------------------------------------------------------- -# -# This script was originally written by Peter Stephenson[2], who published it -# to the ZSH users mailing list (thereby making it public domain) in September -# 2009. It was later revised by Guido van Steen and released under the BSD -# license (see below) as part of the fizsh[3] project in January 2011. -# -# It was later extracted from fizsh[3] release 1.0.1, refactored heavily, and -# repackaged as both an oh-my-zsh plugin[4] and as an independently loadable -# ZSH script[5] by Suraj N. Kurapati in 2011. -# -# It was further developed[4] by Guido van Steen, Suraj N. Kurapati, Sorin -# Ionescu, and Vincent Guerci in 2011. -# -# [1]: http://fishshell.com -# [2]: http://www.zsh.org/mla/users/2009/msg00818.html -# [3]: http://sourceforge.net/projects/fizsh/ -# [4]: https://github.com/robbyrussell/oh-my-zsh/pull/215 -# [5]: https://github.com/sunaku/zsh-history-substring-search -# [6]: https://github.com/nicoulaj/zsh-syntax-highlighting -# -############################################################################## -# -# Copyright (c) 2009 Peter Stephenson -# Copyright (c) 2011 Guido van Steen -# Copyright (c) 2011 Suraj N. Kurapati -# Copyright (c) 2011 Sorin Ionescu -# Copyright (c) 2011 Vincent Guerci -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# -# * Neither the name of the FIZSH nor the names of its contributors -# may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################## - -#----------------------------------------------------------------------------- -# configuration variables -#----------------------------------------------------------------------------- - -HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold' -HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold' -HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i' - -#----------------------------------------------------------------------------- -# the main ZLE widgets -#----------------------------------------------------------------------------- - -function history-substring-search-up() { - _history-substring-search-begin - - _history-substring-search-up-history || - _history-substring-search-up-buffer || - _history-substring-search-up-search - - _history-substring-search-end -} - -function history-substring-search-down() { - _history-substring-search-begin - - _history-substring-search-down-history || - _history-substring-search-down-buffer || - _history-substring-search-down-search - - _history-substring-search-end -} - -zle -N history-substring-search-up -zle -N history-substring-search-down - -bindkey '\e[A' history-substring-search-up -bindkey '\e[B' history-substring-search-down - -#----------------------------------------------------------------------------- -# implementation details -#----------------------------------------------------------------------------- - -setopt extendedglob -zmodload -F zsh/parameter - -# -# We have to "override" some keys and widgets if the -# zsh-syntax-highlighting plugin has not been loaded: -# -# https://github.com/nicoulaj/zsh-syntax-highlighting -# -if [[ $+functions[_zsh_highlight] -eq 0 ]]; then - # - # Dummy implementation of _zsh_highlight() - # that simply removes existing highlights - # - function _zsh_highlight() { - region_highlight=() - } - - # - # Remove existing highlights when the user - # inserts printable characters into $BUFFER - # - function ordinary-key-press() { - if [[ $KEYS == [[:print:]] ]]; then - region_highlight=() - fi - zle .self-insert - } - zle -N self-insert ordinary-key-press - - # - # Override ZLE widgets to invoke _zsh_highlight() - # - # https://github.com/nicoulaj/zsh-syntax-highlighting/blob/ - # bb7fcb79fad797a40077bebaf6f4e4a93c9d8163/zsh-syntax-highlighting.zsh#L121 - # - #--------------8<-------------------8<-------------------8<----------------- - # - # Copyright (c) 2010-2011 zsh-syntax-highlighting contributors - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are - # met: - # - # * Redistributions of source code must retain the above copyright - # notice, this list of conditions and the following disclaimer. - # - # * Redistributions in binary form must reproduce the above copyright - # notice, this list of conditions and the following disclaimer in the - # documentation and/or other materials provided with the distribution. - # - # * Neither the name of the zsh-syntax-highlighting contributors nor the - # names of its contributors may be used to endorse or promote products - # derived from this software without specific prior written permission. - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - # Load ZSH module zsh/zleparameter, needed to override user defined widgets. - zmodload zsh/zleparameter 2>/dev/null || { - echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter, exiting.' >&2 - return -1 - } - - # Override ZLE widgets to make them invoke _zsh_highlight. - for event in ${${(f)"$(zle -la)"}:#(_*|orig-*|.run-help|.which-command)}; do - if [[ "$widgets[$event]" == completion:* ]]; then - eval "zle -C orig-$event ${${${widgets[$event]}#*:}/:/ } ; $event() { builtin zle orig-$event && _zsh_highlight } ; zle -N $event" - else - case $event in - accept-and-menu-complete) - eval "$event() { builtin zle .$event && _zsh_highlight } ; zle -N $event" - ;; - - # The following widgets should NOT remove any previously - # applied highlighting. Therefore we do not remap them. - .forward-char|.backward-char|.up-line-or-history|.down-line-or-history) - ;; - - .*) - clean_event=$event[2,${#event}] # Remove the leading dot in the event name - case ${widgets[$clean_event]-} in - (completion|user):*) - ;; - *) - eval "$clean_event() { builtin zle $event && _zsh_highlight } ; zle -N $clean_event" - ;; - esac - ;; - *) - ;; - esac - fi - done - unset event clean_event - #-------------->8------------------->8------------------->8----------------- -fi - -function _history-substring-search-begin() { - _history_substring_search_move_cursor_eol=false - _history_substring_search_query_highlight= - - # - # Continue using the previous $_history_substring_search_result by default, - # unless the current query was cleared or a new/different query was entered. - # - if [[ -z $BUFFER || $BUFFER != $_history_substring_search_result ]]; then - # - # For the purpose of highlighting we will also keep - # a version without doubly-escaped meta characters. - # - _history_substring_search_query=$BUFFER - - # - # $BUFFER contains the text that is in the command-line currently. - # we put an extra "\\" before meta characters such as "\(" and "\)", - # so that they become "\\\(" and "\\\)". - # - _history_substring_search_query_escaped=${BUFFER//(#m)[\][()|\\*?#<>~^]/\\$MATCH} - - # - # Find all occurrences of the search query in the history file. - # - # (k) turns it an array of line numbers. - # - # (on) seems to remove duplicates, which are default - # options. They can be turned off by (ON). - # - _history_substring_search_matches=(${(kon)history[(R)(#$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)*${_history_substring_search_query_escaped}*]}) - - # - # Define the range of values that $_history_substring_search_match_index - # can take: [0, $_history_substring_search_matches_count_plus]. - # - _history_substring_search_matches_count=$#_history_substring_search_matches - _history_substring_search_matches_count_plus=$(( _history_substring_search_matches_count + 1 )) - _history_substring_search_matches_count_sans=$(( _history_substring_search_matches_count - 1 )) - - # - # If $_history_substring_search_match_index is equal to - # $_history_substring_search_matches_count_plus, this indicates that we - # are beyond the beginning of $_history_substring_search_matches. - # - # If $_history_substring_search_match_index is equal to 0, this indicates - # that we are beyond the end of $_history_substring_search_matches. - # - # If we have initially pressed "up" we have to initialize - # $_history_substring_search_match_index to - # $_history_substring_search_matches_count_plus so that it will be - # decreased to $_history_substring_search_matches_count. - # - # If we have initially pressed "down" we have to initialize - # $_history_substring_search_match_index to - # $_history_substring_search_matches_count so that it will be increased to - # $_history_substring_search_matches_count_plus. - # - if [[ $WIDGET == history-substring-search-down ]]; then - _history_substring_search_match_index=$_history_substring_search_matches_count - else - _history_substring_search_match_index=$_history_substring_search_matches_count_plus - fi - fi -} - -function _history-substring-search-end() { - _history_substring_search_result=$BUFFER - - # move the cursor to the end of the command line - if [[ $_history_substring_search_move_cursor_eol == true ]]; then - CURSOR=${#BUFFER} - fi - - # highlight command line using zsh-syntax-highlighting - _zsh_highlight - - # highlight the search query inside the command line - if [[ -n $_history_substring_search_query_highlight && -n $_history_substring_search_query ]]; then - # - # The following expression yields a variable $MBEGIN, which - # indicates the begin position + 1 of the first occurrence - # of _history_substring_search_query_escaped in $BUFFER. - # - : ${(S)BUFFER##(#m$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)($_history_substring_search_query##)} - local begin=$(( MBEGIN - 1 )) - local end=$(( begin + $#_history_substring_search_query )) - region_highlight+=("$begin $end $_history_substring_search_query_highlight") - fi - - # For debugging purposes: - # zle -R "mn: "$_history_substring_search_match_index" m#: "${#_history_substring_search_matches} - # read -k -t 200 && zle -U $REPLY - - # Exit successfully from the history-substring-search-* widgets. - true -} - -function _history-substring-search-up-buffer() { - # - # Check if the UP arrow was pressed to move the cursor within a multi-line - # buffer. This amounts to three tests: - # - # 1. $#buflines -gt 1. - # - # 2. $CURSOR -ne $#BUFFER. - # - # 3. Check if we are on the first line of the current multi-line buffer. - # If so, pressing UP would amount to leaving the multi-line buffer. - # - # We check this by adding an extra "x" to $LBUFFER, which makes - # sure that xlbuflines is always equal to the number of lines - # until $CURSOR (including the line with the cursor on it). - # - local buflines XLBUFFER xlbuflines - buflines=(${(f)BUFFER}) - XLBUFFER=$LBUFFER"x" - xlbuflines=(${(f)XLBUFFER}) - - if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xlbuflines -ne 1 ]]; then - zle up-line-or-history - return true - fi - - false -} - -function _history-substring-search-down-buffer() { - # - # Check if the DOWN arrow was pressed to move the cursor within a multi-line - # buffer. This amounts to three tests: - # - # 1. $#buflines -gt 1. - # - # 2. $CURSOR -ne $#BUFFER. - # - # 3. Check if we are on the last line of the current multi-line buffer. - # If so, pressing DOWN would amount to leaving the multi-line buffer. - # - # We check this by adding an extra "x" to $RBUFFER, which makes - # sure that xrbuflines is always equal to the number of lines - # from $CURSOR (including the line with the cursor on it). - # - local buflines XRBUFFER xrbuflines - buflines=(${(f)BUFFER}) - XRBUFFER="x"$RBUFFER - xrbuflines=(${(f)XRBUFFER}) - - if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xrbuflines -ne 1 ]]; then - zle down-line-or-history - return true - fi - - false -} - -function _history-substring-search-up-history() { - # - # Behave like up in ZSH, except clear the $BUFFER - # when beginning of history is reached like in Fish. - # - if [[ -z $_history_substring_search_query ]]; then - - # we have reached the absolute top of history - if [[ $HISTNO -eq 1 ]]; then - BUFFER= - - # going up from somewhere below the top of history - else - zle up-history - fi - - return true - fi - - false -} - -function _history-substring-search-down-history() { - # - # Behave like down-history in ZSH, except clear the - # $BUFFER when end of history is reached like in Fish. - # - if [[ -z $_history_substring_search_query ]]; then - - # going down from the absolute top of history - if [[ $HISTNO -eq 1 && -z $BUFFER ]]; then - BUFFER=${history[1]} - _history_substring_search_move_cursor_eol=true - - # going down from somewhere above the bottom of history - else - zle down-history - fi - - return true - fi - - false -} - -function _history-substring-search-up-search() { - _history_substring_search_move_cursor_eol=true - - # - # Highlight matches during history-substring-up-search: - # - # The following constants have been initialized in - # _history-substring-search-up/down-search(): - # - # $_history_substring_search_matches is the current list of matches - # $_history_substring_search_matches_count is the current number of matches - # $_history_substring_search_matches_count_plus is the current number of matches + 1 - # $_history_substring_search_matches_count_sans is the current number of matches - 1 - # $_history_substring_search_match_index is the index of the current match - # - # The range of values that $_history_substring_search_match_index can take - # is: [0, $_history_substring_search_matches_count_plus]. A value of 0 - # indicates that we are beyond the end of - # $_history_substring_search_matches. A value of - # $_history_substring_search_matches_count_plus indicates that we are beyond - # the beginning of $_history_substring_search_matches. - # - # In _history-substring-search-up-search() the initial value of - # $_history_substring_search_match_index is - # $_history_substring_search_matches_count_plus. This value is set in - # _history-substring-search-begin(). _history-substring-search-up-search() - # will initially decrease it to $_history_substring_search_matches_count. - # - if [[ $_history_substring_search_match_index -ge 2 ]]; then - # - # Highlight the next match: - # - # 1. Decrease the value of $_history_substring_search_match_index. - # - # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index-- )) - BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]] - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - - elif [[ $_history_substring_search_match_index -eq 1 ]]; then - # - # We will move beyond the end of $_history_substring_search_matches: - # - # 1. Decrease the value of $_history_substring_search_match_index. - # - # 2. Save the current buffer in $_history_substring_search_old_buffer, - # so that it can be retrieved by - # _history-substring-search-down-search() later. - # - # 3. Make $BUFFER equal to $_history_substring_search_query. - # - # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index-- )) - _history_substring_search_old_buffer=$BUFFER - BUFFER=$_history_substring_search_query - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND - - elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count_plus ]]; then - # - # We were beyond the beginning of $_history_substring_search_matches but - # UP makes us move back to $_history_substring_search_matches: - # - # 1. Decrease the value of $_history_substring_search_match_index. - # - # 2. Restore $BUFFER from $_history_substring_search_old_buffer. - # - # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index-- )) - BUFFER=$_history_substring_search_old_buffer - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - fi -} - -function _history-substring-search-down-search() { - _history_substring_search_move_cursor_eol=true - - # - # Highlight matches during history-substring-up-search: - # - # The following constants have been initialized in - # _history-substring-search-up/down-search(): - # - # $_history_substring_search_matches is the current list of matches - # $_history_substring_search_matches_count is the current number of matches - # $_history_substring_search_matches_count_plus is the current number of matches + 1 - # $_history_substring_search_matches_count_sans is the current number of matches - 1 - # $_history_substring_search_match_index is the index of the current match - # - # The range of values that $_history_substring_search_match_index can take - # is: [0, $_history_substring_search_matches_count_plus]. A value of 0 - # indicates that we are beyond the end of - # $_history_substring_search_matches. A value of - # $_history_substring_search_matches_count_plus indicates that we are beyond - # the beginning of $_history_substring_search_matches. - # - # In _history-substring-search-down-search() the initial value of - # $_history_substring_search_match_index is - # $_history_substring_search_matches_count. This value is set in - # _history-substring-search-begin(). - # _history-substring-search-down-search() will initially increase it to - # $_history_substring_search_matches_count_plus. - # - if [[ $_history_substring_search_match_index -le $_history_substring_search_matches_count_sans ]]; then - # - # Highlight the next match: - # - # 1. Increase $_history_substring_search_match_index by 1. - # - # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index++ )) - BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]] - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - - elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count ]]; then - # - # We will move beyond the beginning of $_history_substring_search_matches: - # - # 1. Increase $_history_substring_search_match_index by 1. - # - # 2. Save the current buffer in $_history_substring_search_old_buffer, so - # that it can be retrieved by _history-substring-search-up-search() - # later. - # - # 3. Make $BUFFER equal to $_history_substring_search_query. - # - # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index++ )) - _history_substring_search_old_buffer=$BUFFER - BUFFER=$_history_substring_search_query - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND - - elif [[ $_history_substring_search_match_index -eq 0 ]]; then - # - # We were beyond the end of $_history_substring_search_matches but DOWN - # makes us move back to the $_history_substring_search_matches: - # - # 1. Increase $_history_substring_search_match_index by 1. - # - # 2. Restore $BUFFER from $_history_substring_search_old_buffer. - # - # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - # to highlight the current buffer. - # - (( _history_substring_search_match_index++ )) - BUFFER=$_history_substring_search_old_buffer - _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND - fi -} - -# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- -# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/history-substring-search/README b/plugins/history-substring-search/README new file mode 100644 index 000000000..be11adf76 --- /dev/null +++ b/plugins/history-substring-search/README @@ -0,0 +1,7 @@ +To activate this script, load it into an interactive ZSH session: + + % source history-substring-search.zsh + +See the "history-substring-search.zsh" file for more information: + + % sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh new file mode 100644 index 000000000..99a5922c5 --- /dev/null +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -0,0 +1,12 @@ +# This file integrates the history-substring-search script into oh-my-zsh. + +source "$ZSH/plugins/history-substring-search/history-substring-search.zsh" + +if test "$CASE_SENSITIVE" = true; then + unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS +fi + +if test "$DISABLE_COLOR" = true; then + unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND +fi diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh new file mode 100644 index 000000000..53f707c79 --- /dev/null +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -0,0 +1,642 @@ +#!/usr/bin/env zsh +# +# This is a clean-room implementation of the Fish[1] shell's history search +# feature, where you can type in any part of any previously entered command +# and press the UP and DOWN arrow keys to cycle through the matching commands. +# +#----------------------------------------------------------------------------- +# Usage +#----------------------------------------------------------------------------- +# +# 1. Load this script into your interactive ZSH session: +# +# % source history-substring-search.zsh +# +# If you want to use the zsh-syntax-highlighting[6] script along with this +# script, then make sure that you load it *before* you load this script: +# +# % source zsh-syntax-highlighting.zsh +# % source history-substring-search.zsh +# +# 2. Type any part of any previous command and then: +# +# * Press the UP arrow key to select the nearest command that (1) contains +# your query and (2) is older than the current command in the command +# history. +# +# * Press the DOWN arrow key to select the nearest command that (1) +# contains your query and (2) is newer than the current command in the +# command history. +# +# * Press ^U (the Control and U keys simultaneously) to abort the search. +# +# 3. If a matching command spans more than one line of text, press the LEFT +# arrow key to move the cursor away from the end of the command, and then: +# +# * Press the UP arrow key to move the cursor to the line above. When the +# cursor reaches the first line of the command, pressing the UP arrow +# key again will cause this script to perform another search. +# +# * Press the DOWN arrow key to move the cursor to the line below. When +# the cursor reaches the last line of the command, pressing the DOWN +# arrow key again will cause this script to perform another search. +# +#----------------------------------------------------------------------------- +# Configuration +#----------------------------------------------------------------------------- +# +# This script defines the following global variables. You may override their +# default values only after having loaded this script into your ZSH session. +# +# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND is a global variable that defines +# how the query should be highlighted inside a matching command. Its default +# value causes this script to highlight using bold, white text on a magenta +# background. See the "Character Highlighting" section in the zshzle(1) man +# page to learn about the kinds of values you may assign to this variable. +# +# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND is a global variable that +# defines how the query should be highlighted when no commands in the +# history match it. Its default value causes this script to highlight using +# bold, white text on a red background. See the "Character Highlighting" +# section in the zshzle(1) man page to learn about the kinds of values you +# may assign to this variable. +# +# * HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS is a global variable that defines +# how the command history will be searched for your query. Its default value +# causes this script to perform a case-insensitive search. See the "Globbing +# Flags" section in the zshexpn(1) man page to learn about the kinds of +# values you may assign to this variable. +# +#----------------------------------------------------------------------------- +# History +#----------------------------------------------------------------------------- +# +# This script was originally written by Peter Stephenson[2], who published it +# to the ZSH users mailing list (thereby making it public domain) in September +# 2009. It was later revised by Guido van Steen and released under the BSD +# license (see below) as part of the fizsh[3] project in January 2011. +# +# It was later extracted from fizsh[3] release 1.0.1, refactored heavily, and +# repackaged as both an oh-my-zsh plugin[4] and as an independently loadable +# ZSH script[5] by Suraj N. Kurapati in 2011. +# +# It was further developed[4] by Guido van Steen, Suraj N. Kurapati, Sorin +# Ionescu, and Vincent Guerci in 2011. +# +# [1]: http://fishshell.com +# [2]: http://www.zsh.org/mla/users/2009/msg00818.html +# [3]: http://sourceforge.net/projects/fizsh/ +# [4]: https://github.com/robbyrussell/oh-my-zsh/pull/215 +# [5]: https://github.com/sunaku/zsh-history-substring-search +# [6]: https://github.com/nicoulaj/zsh-syntax-highlighting +# +############################################################################## +# +# Copyright (c) 2009 Peter Stephenson +# Copyright (c) 2011 Guido van Steen +# Copyright (c) 2011 Suraj N. Kurapati +# Copyright (c) 2011 Sorin Ionescu +# Copyright (c) 2011 Vincent Guerci +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# * Neither the name of the FIZSH nor the names of its contributors +# may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## + +#----------------------------------------------------------------------------- +# configuration variables +#----------------------------------------------------------------------------- + +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold' +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold' +HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i' + +#----------------------------------------------------------------------------- +# the main ZLE widgets +#----------------------------------------------------------------------------- + +function history-substring-search-up() { + _history-substring-search-begin + + _history-substring-search-up-history || + _history-substring-search-up-buffer || + _history-substring-search-up-search + + _history-substring-search-end +} + +function history-substring-search-down() { + _history-substring-search-begin + + _history-substring-search-down-history || + _history-substring-search-down-buffer || + _history-substring-search-down-search + + _history-substring-search-end +} + +zle -N history-substring-search-up +zle -N history-substring-search-down + +bindkey '\e[A' history-substring-search-up +bindkey '\e[B' history-substring-search-down + +#----------------------------------------------------------------------------- +# implementation details +#----------------------------------------------------------------------------- + +setopt extendedglob +zmodload -F zsh/parameter + +# +# We have to "override" some keys and widgets if the +# zsh-syntax-highlighting plugin has not been loaded: +# +# https://github.com/nicoulaj/zsh-syntax-highlighting +# +if [[ $+functions[_zsh_highlight] -eq 0 ]]; then + # + # Dummy implementation of _zsh_highlight() + # that simply removes existing highlights + # + function _zsh_highlight() { + region_highlight=() + } + + # + # Remove existing highlights when the user + # inserts printable characters into $BUFFER + # + function ordinary-key-press() { + if [[ $KEYS == [[:print:]] ]]; then + region_highlight=() + fi + zle .self-insert + } + zle -N self-insert ordinary-key-press + + # + # Override ZLE widgets to invoke _zsh_highlight() + # + # https://github.com/nicoulaj/zsh-syntax-highlighting/blob/ + # bb7fcb79fad797a40077bebaf6f4e4a93c9d8163/zsh-syntax-highlighting.zsh#L121 + # + #--------------8<-------------------8<-------------------8<----------------- + # + # Copyright (c) 2010-2011 zsh-syntax-highlighting contributors + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are + # met: + # + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # + # * Neither the name of the zsh-syntax-highlighting contributors nor the + # names of its contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + # Load ZSH module zsh/zleparameter, needed to override user defined widgets. + zmodload zsh/zleparameter 2>/dev/null || { + echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter, exiting.' >&2 + return -1 + } + + # Override ZLE widgets to make them invoke _zsh_highlight. + for event in ${${(f)"$(zle -la)"}:#(_*|orig-*|.run-help|.which-command)}; do + if [[ "$widgets[$event]" == completion:* ]]; then + eval "zle -C orig-$event ${${${widgets[$event]}#*:}/:/ } ; $event() { builtin zle orig-$event && _zsh_highlight } ; zle -N $event" + else + case $event in + accept-and-menu-complete) + eval "$event() { builtin zle .$event && _zsh_highlight } ; zle -N $event" + ;; + + # The following widgets should NOT remove any previously + # applied highlighting. Therefore we do not remap them. + .forward-char|.backward-char|.up-line-or-history|.down-line-or-history) + ;; + + .*) + clean_event=$event[2,${#event}] # Remove the leading dot in the event name + case ${widgets[$clean_event]-} in + (completion|user):*) + ;; + *) + eval "$clean_event() { builtin zle $event && _zsh_highlight } ; zle -N $clean_event" + ;; + esac + ;; + *) + ;; + esac + fi + done + unset event clean_event + #-------------->8------------------->8------------------->8----------------- +fi + +function _history-substring-search-begin() { + _history_substring_search_move_cursor_eol=false + _history_substring_search_query_highlight= + + # + # Continue using the previous $_history_substring_search_result by default, + # unless the current query was cleared or a new/different query was entered. + # + if [[ -z $BUFFER || $BUFFER != $_history_substring_search_result ]]; then + # + # For the purpose of highlighting we will also keep + # a version without doubly-escaped meta characters. + # + _history_substring_search_query=$BUFFER + + # + # $BUFFER contains the text that is in the command-line currently. + # we put an extra "\\" before meta characters such as "\(" and "\)", + # so that they become "\\\(" and "\\\)". + # + _history_substring_search_query_escaped=${BUFFER//(#m)[\][()|\\*?#<>~^]/\\$MATCH} + + # + # Find all occurrences of the search query in the history file. + # + # (k) turns it an array of line numbers. + # + # (on) seems to remove duplicates, which are default + # options. They can be turned off by (ON). + # + _history_substring_search_matches=(${(kon)history[(R)(#$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)*${_history_substring_search_query_escaped}*]}) + + # + # Define the range of values that $_history_substring_search_match_index + # can take: [0, $_history_substring_search_matches_count_plus]. + # + _history_substring_search_matches_count=$#_history_substring_search_matches + _history_substring_search_matches_count_plus=$(( _history_substring_search_matches_count + 1 )) + _history_substring_search_matches_count_sans=$(( _history_substring_search_matches_count - 1 )) + + # + # If $_history_substring_search_match_index is equal to + # $_history_substring_search_matches_count_plus, this indicates that we + # are beyond the beginning of $_history_substring_search_matches. + # + # If $_history_substring_search_match_index is equal to 0, this indicates + # that we are beyond the end of $_history_substring_search_matches. + # + # If we have initially pressed "up" we have to initialize + # $_history_substring_search_match_index to + # $_history_substring_search_matches_count_plus so that it will be + # decreased to $_history_substring_search_matches_count. + # + # If we have initially pressed "down" we have to initialize + # $_history_substring_search_match_index to + # $_history_substring_search_matches_count so that it will be increased to + # $_history_substring_search_matches_count_plus. + # + if [[ $WIDGET == history-substring-search-down ]]; then + _history_substring_search_match_index=$_history_substring_search_matches_count + else + _history_substring_search_match_index=$_history_substring_search_matches_count_plus + fi + fi +} + +function _history-substring-search-end() { + _history_substring_search_result=$BUFFER + + # move the cursor to the end of the command line + if [[ $_history_substring_search_move_cursor_eol == true ]]; then + CURSOR=${#BUFFER} + fi + + # highlight command line using zsh-syntax-highlighting + _zsh_highlight + + # highlight the search query inside the command line + if [[ -n $_history_substring_search_query_highlight && -n $_history_substring_search_query ]]; then + # + # The following expression yields a variable $MBEGIN, which + # indicates the begin position + 1 of the first occurrence + # of _history_substring_search_query_escaped in $BUFFER. + # + : ${(S)BUFFER##(#m$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)($_history_substring_search_query##)} + local begin=$(( MBEGIN - 1 )) + local end=$(( begin + $#_history_substring_search_query )) + region_highlight+=("$begin $end $_history_substring_search_query_highlight") + fi + + # For debugging purposes: + # zle -R "mn: "$_history_substring_search_match_index" m#: "${#_history_substring_search_matches} + # read -k -t 200 && zle -U $REPLY + + # Exit successfully from the history-substring-search-* widgets. + true +} + +function _history-substring-search-up-buffer() { + # + # Check if the UP arrow was pressed to move the cursor within a multi-line + # buffer. This amounts to three tests: + # + # 1. $#buflines -gt 1. + # + # 2. $CURSOR -ne $#BUFFER. + # + # 3. Check if we are on the first line of the current multi-line buffer. + # If so, pressing UP would amount to leaving the multi-line buffer. + # + # We check this by adding an extra "x" to $LBUFFER, which makes + # sure that xlbuflines is always equal to the number of lines + # until $CURSOR (including the line with the cursor on it). + # + local buflines XLBUFFER xlbuflines + buflines=(${(f)BUFFER}) + XLBUFFER=$LBUFFER"x" + xlbuflines=(${(f)XLBUFFER}) + + if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xlbuflines -ne 1 ]]; then + zle up-line-or-history + return true + fi + + false +} + +function _history-substring-search-down-buffer() { + # + # Check if the DOWN arrow was pressed to move the cursor within a multi-line + # buffer. This amounts to three tests: + # + # 1. $#buflines -gt 1. + # + # 2. $CURSOR -ne $#BUFFER. + # + # 3. Check if we are on the last line of the current multi-line buffer. + # If so, pressing DOWN would amount to leaving the multi-line buffer. + # + # We check this by adding an extra "x" to $RBUFFER, which makes + # sure that xrbuflines is always equal to the number of lines + # from $CURSOR (including the line with the cursor on it). + # + local buflines XRBUFFER xrbuflines + buflines=(${(f)BUFFER}) + XRBUFFER="x"$RBUFFER + xrbuflines=(${(f)XRBUFFER}) + + if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xrbuflines -ne 1 ]]; then + zle down-line-or-history + return true + fi + + false +} + +function _history-substring-search-up-history() { + # + # Behave like up in ZSH, except clear the $BUFFER + # when beginning of history is reached like in Fish. + # + if [[ -z $_history_substring_search_query ]]; then + + # we have reached the absolute top of history + if [[ $HISTNO -eq 1 ]]; then + BUFFER= + + # going up from somewhere below the top of history + else + zle up-history + fi + + return true + fi + + false +} + +function _history-substring-search-down-history() { + # + # Behave like down-history in ZSH, except clear the + # $BUFFER when end of history is reached like in Fish. + # + if [[ -z $_history_substring_search_query ]]; then + + # going down from the absolute top of history + if [[ $HISTNO -eq 1 && -z $BUFFER ]]; then + BUFFER=${history[1]} + _history_substring_search_move_cursor_eol=true + + # going down from somewhere above the bottom of history + else + zle down-history + fi + + return true + fi + + false +} + +function _history-substring-search-up-search() { + _history_substring_search_move_cursor_eol=true + + # + # Highlight matches during history-substring-up-search: + # + # The following constants have been initialized in + # _history-substring-search-up/down-search(): + # + # $_history_substring_search_matches is the current list of matches + # $_history_substring_search_matches_count is the current number of matches + # $_history_substring_search_matches_count_plus is the current number of matches + 1 + # $_history_substring_search_matches_count_sans is the current number of matches - 1 + # $_history_substring_search_match_index is the index of the current match + # + # The range of values that $_history_substring_search_match_index can take + # is: [0, $_history_substring_search_matches_count_plus]. A value of 0 + # indicates that we are beyond the end of + # $_history_substring_search_matches. A value of + # $_history_substring_search_matches_count_plus indicates that we are beyond + # the beginning of $_history_substring_search_matches. + # + # In _history-substring-search-up-search() the initial value of + # $_history_substring_search_match_index is + # $_history_substring_search_matches_count_plus. This value is set in + # _history-substring-search-begin(). _history-substring-search-up-search() + # will initially decrease it to $_history_substring_search_matches_count. + # + if [[ $_history_substring_search_match_index -ge 2 ]]; then + # + # Highlight the next match: + # + # 1. Decrease the value of $_history_substring_search_match_index. + # + # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index-- )) + BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]] + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + + elif [[ $_history_substring_search_match_index -eq 1 ]]; then + # + # We will move beyond the end of $_history_substring_search_matches: + # + # 1. Decrease the value of $_history_substring_search_match_index. + # + # 2. Save the current buffer in $_history_substring_search_old_buffer, + # so that it can be retrieved by + # _history-substring-search-down-search() later. + # + # 3. Make $BUFFER equal to $_history_substring_search_query. + # + # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index-- )) + _history_substring_search_old_buffer=$BUFFER + BUFFER=$_history_substring_search_query + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND + + elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count_plus ]]; then + # + # We were beyond the beginning of $_history_substring_search_matches but + # UP makes us move back to $_history_substring_search_matches: + # + # 1. Decrease the value of $_history_substring_search_match_index. + # + # 2. Restore $BUFFER from $_history_substring_search_old_buffer. + # + # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index-- )) + BUFFER=$_history_substring_search_old_buffer + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + fi +} + +function _history-substring-search-down-search() { + _history_substring_search_move_cursor_eol=true + + # + # Highlight matches during history-substring-up-search: + # + # The following constants have been initialized in + # _history-substring-search-up/down-search(): + # + # $_history_substring_search_matches is the current list of matches + # $_history_substring_search_matches_count is the current number of matches + # $_history_substring_search_matches_count_plus is the current number of matches + 1 + # $_history_substring_search_matches_count_sans is the current number of matches - 1 + # $_history_substring_search_match_index is the index of the current match + # + # The range of values that $_history_substring_search_match_index can take + # is: [0, $_history_substring_search_matches_count_plus]. A value of 0 + # indicates that we are beyond the end of + # $_history_substring_search_matches. A value of + # $_history_substring_search_matches_count_plus indicates that we are beyond + # the beginning of $_history_substring_search_matches. + # + # In _history-substring-search-down-search() the initial value of + # $_history_substring_search_match_index is + # $_history_substring_search_matches_count. This value is set in + # _history-substring-search-begin(). + # _history-substring-search-down-search() will initially increase it to + # $_history_substring_search_matches_count_plus. + # + if [[ $_history_substring_search_match_index -le $_history_substring_search_matches_count_sans ]]; then + # + # Highlight the next match: + # + # 1. Increase $_history_substring_search_match_index by 1. + # + # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index++ )) + BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]] + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + + elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count ]]; then + # + # We will move beyond the beginning of $_history_substring_search_matches: + # + # 1. Increase $_history_substring_search_match_index by 1. + # + # 2. Save the current buffer in $_history_substring_search_old_buffer, so + # that it can be retrieved by _history-substring-search-up-search() + # later. + # + # 3. Make $BUFFER equal to $_history_substring_search_query. + # + # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index++ )) + _history_substring_search_old_buffer=$BUFFER + BUFFER=$_history_substring_search_query + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND + + elif [[ $_history_substring_search_match_index -eq 0 ]]; then + # + # We were beyond the end of $_history_substring_search_matches but DOWN + # makes us move back to the $_history_substring_search_matches: + # + # 1. Increase $_history_substring_search_match_index by 1. + # + # 2. Restore $BUFFER from $_history_substring_search_old_buffer. + # + # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + # to highlight the current buffer. + # + (( _history_substring_search_match_index++ )) + BUFFER=$_history_substring_search_old_buffer + _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND + fi +} + +# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- +# vim: ft=zsh sw=2 ts=2 et -- cgit v1.2.3-70-g09d2 From d866662c4af4c6e6e661c59d2da8f60eabbfba1d Mon Sep 17 00:00:00 2001 From: Fredrik Wallgren Date: Sat, 30 Jul 2011 04:38:57 +0200 Subject: Add autocomplete for gas. Based on the rvm plugin. --- plugins/gas/_gas | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 plugins/gas/_gas (limited to 'plugins') diff --git a/plugins/gas/_gas b/plugins/gas/_gas new file mode 100644 index 000000000..069713fc6 --- /dev/null +++ b/plugins/gas/_gas @@ -0,0 +1,34 @@ +#compdef gas + +local curcontext="$curcontext" state line cmds ret=1 + +_arguments -C \ + '(- 1 *)'{-v,--version}'[display version information]' \ + '(-h|--help)'{-h,--help}'[show help information]' \ + '1: :->cmds' \ + '*: :->args' && ret=0 + +case $state in + cmds) + cmds=( + "version:Prints Gas's version" + "use:Uses author" + "show:Shows your current user" + "list:Lists your authors" + "import:Imports current user to gasconfig" + "help:Describe available tasks or one specific task" + "delete:Deletes author" + "add:Adds author to gasconfig" + ) + _describe -t commands 'gas command' cmds && ret=0 + ;; + args) + case $line[1] in + (use|delete) + _values -S , 'rubies' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 + ;; + esac + ;; +esac + +return ret -- cgit v1.2.3-70-g09d2 From c3412ca57d313a0a1419d26b5529f28de49285d0 Mon Sep 17 00:00:00 2001 From: Fredrik Wallgren Date: Sat, 30 Jul 2011 04:57:25 +0200 Subject: Replace forgotten rubies with authors --- plugins/gas/_gas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/gas/_gas b/plugins/gas/_gas index 069713fc6..befdc9459 100644 --- a/plugins/gas/_gas +++ b/plugins/gas/_gas @@ -25,7 +25,7 @@ case $state in args) case $line[1] in (use|delete) - _values -S , 'rubies' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 + _values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 ;; esac ;; -- cgit v1.2.3-70-g09d2