Conflicts:
	themes/gnzh.zsh-theme
This commit is contained in:
Joakim Reinert 2014-08-29 10:14:36 +02:00
commit 3382b26661
96 changed files with 3296 additions and 436 deletions

View file

@ -1,4 +1,14 @@
#
# Your guess is as good as mine. Let's just assume that we will need this...
# - For more info visit... http://atom.io/
#
local _atom_paths > /dev/null 2>&1
_atom_paths=(
"$HOME/Applications/Atom.app"
"/Applications/Atom.app"
)
for _atom_path in $_atom_paths; do
if [[ -a $_atom_path ]]; then
alias at="open -a '$_atom_path'"
break
fi
done
alias att='at .'

View file

@ -1,5 +1,7 @@
if [ $commands[autojump] ]; then # check if autojump is installed
if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
. $HOME/.autojump/etc/profile.d/autojump.zsh
elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
. /usr/share/autojump/autojump.zsh
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
. /etc/profile.d/autojump.zsh
@ -7,8 +9,6 @@ if [ $commands[autojump] ]; then # check if autojump is installed
. /etc/profile.d/autojump.sh
elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
. /usr/local/share/autojump/autojump.zsh
elif [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
. $HOME/.autojump/etc/profile.d/autojump.zsh
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
. /opt/local/etc/profile.d/autojump.zsh
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew

View file

@ -21,7 +21,7 @@ if [[ $(uname) == "Darwin" ]] ; then
function plugged_in() {
[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
}
function battery_pct_remaining() {
if plugged_in ; then
echo "External Power"
@ -31,10 +31,14 @@ if [[ $(uname) == "Darwin" ]] ; then
}
function battery_time_remaining() {
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
if [ $timeremaining -gt 720 ] ; then
echo "::"
else
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
fi
else
echo "∞"
fi
@ -55,16 +59,28 @@ if [[ $(uname) == "Darwin" ]] ; then
echo "∞"
fi
}
function battery_is_charging() {
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
}
elif [[ $(uname) == "Linux" ]] ; then
function battery_is_charging() {
! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
}
function battery_pct() {
if (( $+commands[acpi] )) ; then
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
fi
}
function battery_pct_remaining() {
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
if [ ! $(battery_is_charging) ] ; then
battery_pct
else
echo "External Power"
fi
}
@ -89,15 +105,6 @@ elif [[ $(uname) == "Linux" ]] ; then
echo "∞"
fi
}
function battery_pct() {
# todo for on linux
}
function battery_is_charging() {
# todo on linux
false
}
else
# Empty functions so we don't cause errors in prompts
@ -131,7 +138,7 @@ function battery_level_gauge() {
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
local empty=$(($gauge_slots - $filled));
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
else local gauge_color=$color_red;
@ -139,10 +146,9 @@ function battery_level_gauge() {
else
local filled=$gauge_slots;
local empty=0;
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
fi
local charging=' ' && battery_is_charging && charging=$charging_symbol;
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}

0
plugins/bower/_bower Executable file → Normal file
View file

View file

@ -0,0 +1,84 @@
# Autocompletion for homebrew-cask.
#
# This script intercepts calls to the brew plugin and adds autocompletion
# for the cask subcommand.
#
# Author: https://github.com/pstadler
compdef _brew-cask brew
_brew-cask()
{
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
':command:->command' \
':subcmd:->subcmd' \
'*::options:->options'
case $state in
(command)
__call_original_brew
cask_commands=(
'cask:manage casks'
)
_describe -t commands 'brew cask command' cask_commands ;;
(subcmd)
case "$line[1]" in
cask)
if (( CURRENT == 3 )); then
local -a subcommands
subcommands=(
"alfred:used to modify Alfred's scope to include the Caskroom"
'audit:verifies installability of casks'
'checklinks:checks for bad cask links'
'cleanup:cleans up cached downloads'
'create:creates a cask of the given name and opens it in an editor'
'doctor:checks for configuration issues'
'edit:edits the cask of the given name'
'fetch:downloads Cask resources to local cache'
'home:opens the homepage of the cask of the given name'
'info:displays information about the cask of the given name'
'install:installs the cask of the given name'
'list:with no args, lists installed casks; given installed casks, lists installed files'
'search:searches all known casks'
'uninstall:uninstalls the cask of the given name'
"update:a synonym for 'brew update'"
)
_describe -t commands "brew cask subcommand" subcommands
fi ;;
*)
__call_original_brew ;;
esac ;;
(options)
local -a casks installed_casks
local expl
case "$line[2]" in
list|uninstall)
__brew_installed_casks
_wanted installed_casks expl 'installed casks' compadd -a installed_casks ;;
audit|edit|home|info|install)
__brew_all_casks
_wanted casks expl 'all casks' compadd -a casks ;;
esac ;;
esac
}
__brew_all_casks() {
casks=(`brew cask search`)
}
__brew_installed_casks() {
installed_casks=(`brew cask list`)
}
__call_original_brew()
{
local ret=1
_call_function ret _brew
compdef _brew-cask brew
}

View file

@ -1 +1,2 @@
alias brews='brew list -1'
alias bubu="brew update && brew upgrade && brew cleanup"

49
plugins/bundler/README.md Normal file
View file

@ -0,0 +1,49 @@
# Bundler
- adds completion for basic bundler commands
- adds short aliases for common bundler commands
- `be` aliased to `bundle exec`
- `bl` aliased to `bundle list`
- `bp` aliased to `bundle package`
- `bo` aliased to `bundle open`
- `bu` aliased to `bundle update`
- `bi` aliased to `bundle install --jobs=<cpu core count>` (only for bundler `>= 1.4.0`)
- adds a wrapper for common gems:
- looks for a binstub under `./bin/` and executes it (if present)
- calls `bundle exec <gem executable>` otherwise
For a full list of *common gems* being wrapped by default please look at the `bundler.plugin.zsh` file.
## Configuration
Please use the exact name of the executable and not the gem name.
### Add additional gems to be wrapped
Add this before the plugin-list in your `.zshrc`:
```sh
BUNDLED_COMMANDS=(rubocop)
plugins=(... bundler ...)
```
This will add the wrapper for the `rubocop` gem (i.e. the executable).
### Exclude gems from being wrapped
Add this before the plugin-list in your `.zshrc`:
```sh
UNBUNDLED_COMMANDS=(foreman spin)
plugins=(... bundler ...)
```
This will exclude the `foreman` and `spin` gems (i.e. their executable) from being wrapped.
## Excluded gems
These gems should not be called with `bundle exec`. Please see the Issues on GitHub for clarification.
`berks`
`foreman`
`mailcatcher`
`rails`
`ruby`
`spin`

View file

@ -18,11 +18,13 @@ case $state in
"check[Determine whether the requirements for your application are installed]" \
"list[Show all of the gems in the current bundle]" \
"show[Show the source location of a particular gem in the bundle]" \
"outdated[Show all of the outdated gems in the current bundle]" \
"console[Start an IRB session in the context of the current bundle]" \
"open[Open an installed gem in the editor]" \
"viz[Generate a visual representation of your dependencies]" \
"init[Generate a simple Gemfile, placed in the current directory]" \
"gem[Create a simple gem, suitable for development with bundler]" \
"platform[Displays platform compatibility information]" \
"clean[Cleans up unused gems in your bundler directory]" \
"help[Describe available tasks or one specific task]"
ret=0
@ -39,11 +41,13 @@ case $state in
'check' \
'list' \
'show' \
'outdated' \
'console' \
'open' \
'viz' \
'init' \
'gem' \
'platform' \
'help' && ret=0
;;
install)
@ -71,6 +75,15 @@ case $state in
'(--verbose)--verbose[Enable verbose output mode]'
ret=0
;;
outdated)
_arguments \
'(--pre)--pre[Check for newer pre-release gems]' \
'(--source)--source[Check against a specific source]' \
'(--local)--local[Do not attempt to fetch gems remotely and use the gem cache instead]' \
'(--no-color)--no-color[Disable colorization in output]' \
'(--verbose)--verbose[Enable verbose output mode]'
ret=0
;;
(open|show)
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
if [[ $_gems != "" ]]; then

View file

@ -3,19 +3,54 @@ alias bl="bundle list"
alias bp="bundle package"
alias bo="bundle open"
alias bu="bundle update"
alias bi="bundle_install"
# The following is based on https://github.com/gma/bundler-exec
bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma)
bundled_commands=(
annotate
cap
capify
cucumber
foodcritic
guard
irb
jekyll
kitchen
knife
middleman
nanoc
pry
puma
rackup
rainbows
rake
rspec
shotgun
sidekiq
spec
spork
spring
strainer
tailor
taps
thin
thor
unicorn
unicorn_rails
)
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
for cmd in $UNBUNDLED_COMMANDS; do
bundled_commands=(${bundled_commands#$cmd});
done
# Add $BUNDLED_COMMANDS to the bundled_commands list
for cmd in $BUNDLED_COMMANDS; do
bundled_commands+=($cmd);
done
## Functions
bi() {
bundle_install() {
if _bundler-installed && _within-bundled-project; then
local bundler_version=`bundle version | cut -d' ' -f3`
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
@ -39,17 +74,25 @@ _bundler-installed() {
}
_within-bundled-project() {
local check_dir=$PWD
while [ $check_dir != "/" ]; do
local check_dir="$PWD"
while [ "$check_dir" != "/" ]; do
[ -f "$check_dir/Gemfile" ] && return
check_dir="$(dirname $check_dir)"
done
false
}
_binstubbed() {
[ -f "./bin/${1}" ]
}
_run-with-bundler() {
if _bundler-installed && _within-bundled-project; then
bundle exec $@
if _binstubbed $1; then
./bin/$@
else
bundle exec $@
fi
else
$@
fi
@ -62,7 +105,6 @@ for cmd in $bundled_commands; do
alias $cmd=bundled_$cmd
if which _$cmd > /dev/null 2>&1; then
compdef _$cmd bundled_$cmd=$cmd
compdef _$cmd bundled_$cmd=$cmd
fi
done

View file

@ -19,4 +19,4 @@ bindkey -a 'N' vi-join
bindkey -a 'j' vi-forward-word-end
bindkey -a 'J' vi-forward-blank-word-end
lesskey $ZSH_CUSTOM/plugins/colemak/colemak-less
lesskey $ZSH/plugins/colemak/colemak-less

View file

@ -1,4 +1,4 @@
# Plugin for highligthing file content
# Plugin for highlighting file content
# Plugin highlights file content based on the filename extension.
# If no highlighting method supported for given extension then it tries
# guess it by looking for file content.
@ -6,9 +6,9 @@
alias colorize='colorize_via_pygmentize'
colorize_via_pygmentize() {
if [ ! -x $(which pygmentize) ]; then
echo package \'pygmentize\' is not installed!
exit -1
if [ ! -x "$(which pygmentize)" ]; then
echo "package \'pygmentize\' is not installed!"
return -1
fi
if [ $# -eq 0 ]; then
@ -25,4 +25,4 @@ colorize_via_pygmentize() {
pygmentize -g "$FNAME"
fi
done
}
}

View file

@ -3,7 +3,6 @@
#
# ls, the common ones I use a lot shortened for rapid fire usage
alias ls='ls --color' #I like color
alias l='ls -lFh' #size,show type,human readable
alias la='ls -lAFh' #long list,show almost all,show type,human readable
alias lr='ls -tRFh' #sorted by date,recursive,show type,human readable
@ -39,7 +38,7 @@ alias -g NE="2> /dev/null"
alias -g NUL="> /dev/null 2>&1"
alias -g P="2>&1| pygmentize -l pytb"
alias dud='du --max-depth=1 -h'
alias dud='du -d 1 -h'
alias duf='du -sh *'
alias fd='find . -type d -name'
alias ff='find . -type f -name'
@ -71,7 +70,7 @@ if [ ${ZSH_VERSION//\./} -ge 420 ]; then
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
for ft in $_image_fts ; do alias -s $ft=$XIVIEWER; done
_media_fts=(avi mpg mpeg ogm mp3 wav ogg ape rm mov mkv)
_media_fts=(ape avi flv mkv mov mp3 mpeg mpg ogg ogm rm wav webm)
for ft in $_media_fts ; do alias -s $ft=mplayer ; done
#read documents

View file

@ -46,3 +46,6 @@ alias cdu='composer dump-autoload'
# install composer in the current directory
alias cget='curl -s https://getcomposer.org/installer | php'
# Add Composer's global binaries to PATH
export PATH=$PATH:~/.composer/vendor/bin

View file

@ -21,8 +21,8 @@ fi
# Aliases ###################################################################
# These are for more obscure uses of apt-get and aptitude that aren't covered
# below.
alias ag='apt-get'
alias ap='aptitude'
alias age='apt-get'
alias api='aptitude'
# Some self-explanatory aliases
alias acs="apt-cache search"
@ -217,3 +217,11 @@ kerndeb () {
"$revision" kernel_image kernel_headers
}
# List packages by size
function apt-list-packages {
dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
grep -v deinstall | \
sort -n | \
awk '{print $1" "$2}'
}

View file

@ -0,0 +1,132 @@
##
# Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories
# that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.
#
dirhistory_past=(`pwd`)
dirhistory_future=()
export dirhistory_past
export dirhistory_future
export DIRHISTORY_SIZE=30
# Pop the last element of dirhistory_past.
# Pass the name of the variable to return the result in.
# Returns the element if the array was not empty,
# otherwise returns empty string.
function pop_past() {
eval "$1='$dirhistory_past[$#dirhistory_past]'"
if [[ $#dirhistory_past -gt 0 ]]; then
dirhistory_past[$#dirhistory_past]=()
fi
}
function pop_future() {
eval "$1='$dirhistory_future[$#dirhistory_future]'"
if [[ $#dirhistory_future -gt 0 ]]; then
dirhistory_future[$#dirhistory_future]=()
fi
}
# Push a new element onto the end of dirhistory_past. If the size of the array
# is >= DIRHISTORY_SIZE, the array is shifted
function push_past() {
if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then
shift dirhistory_past
fi
if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then
dirhistory_past+=($1)
fi
}
function push_future() {
if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then
shift dirhistory_future
fi
if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then
dirhistory_future+=($1)
fi
}
# Called by zsh when directory changes
function chpwd() {
push_past `pwd`
# If DIRHISTORY_CD is not set...
if [[ -z "${DIRHISTORY_CD+x}" ]]; then
# ... clear future.
dirhistory_future=()
fi
}
function dirhistory_cd(){
DIRHISTORY_CD="1"
cd $1
unset DIRHISTORY_CD
}
# Move backward in directory history
function dirhistory_back() {
local cw=""
local d=""
# Last element in dirhistory_past is the cwd.
pop_past cw
if [[ "" == "$cw" ]]; then
# Someone overwrote our variable. Recover it.
dirhistory_past=(`pwd`)
return
fi
pop_past d
if [[ "" != "$d" ]]; then
dirhistory_cd $d
push_future $cw
else
push_past $cw
fi
}
# Move forward in directory history
function dirhistory_forward() {
local d=""
pop_future d
if [[ "" != "$d" ]]; then
dirhistory_cd $d
push_past $d
fi
}
# Bind keys to history navigation
function dirhistory_zle_dirhistory_back() {
# Erase current line in buffer
zle kill-buffer
dirhistory_back
zle accept-line
}
function dirhistory_zle_dirhistory_future() {
# Erase current line in buffer
zle kill-buffer
dirhistory_forward
zle accept-line
}
zle -N dirhistory_zle_dirhistory_back
# xterm in normal mode
bindkey "\e[3D" dirhistory_zle_dirhistory_back
bindkey "\e[1;3D" dirhistory_zle_dirhistory_back
# Putty:
bindkey "\e\e[D" dirhistory_zle_dirhistory_back
# GNU screen:
bindkey "\eO3D" dirhistory_zle_dirhistory_back
zle -N dirhistory_zle_dirhistory_future
bindkey "\e[3C" dirhistory_zle_dirhistory_future
bindkey "\e[1;3C" dirhistory_zle_dirhistory_future
bindkey "\e\e[C" dirhistory_zle_dirhistory_future
bindkey "\eO3C" dirhistory_zle_dirhistory_future

View file

@ -1,39 +1,19 @@
#!/bin/zsh
#
# Make the dirstack more persistant
#
# Add dirpersist to $plugins in ~/.zshrc to load
#
# Save dirstack history to .zdirs
# adapted from:
# github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547
# $zdirstore is the file used to persist the stack
zdirstore=~/.zdirstore
DIRSTACKSIZE=${DIRSTACKSIZE:-20}
dirstack_file=${dirstack_file:-${HOME}/.zdirs}
dirpersistinstall () {
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
else
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
else
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
fi
fi
if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
dirstack=( ${(f)"$(< $dirstack_file)"} )
# "cd -" won't work after login by just setting $OLDPWD, so
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
fi
chpwd() {
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
local -ax my_stack
my_stack=( ${PWD} ${dirstack} )
builtin print -l ${(u)my_stack} >! ${dirstack_file}
}
dirpersiststore () {
dirs -p | perl -e 'foreach (reverse <STDIN>) {chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"}' > $zdirstore
}
dirpersistrestore () {
if [ -f $zdirstore ]; then
source $zdirstore
fi
}
DIRSTACKSIZE=10
setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups
dirpersistinstall
dirpersistrestore
# Make popd changes permanent without having to wait for logout
alias popd="popd;dirpersiststore"

View file

@ -141,6 +141,7 @@ _managepy-sqlinitialdata(){}
_managepy-sqlreset(){}
_managepy-sqlsequencereset(){}
_managepy-startapp(){}
_managepy-startproject(){}
_managepy-syncdb() {
_arguments -s : \
@ -198,6 +199,7 @@ _managepy-commands() {
'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."
"startproject:Creates a Django project directory structure for the given project name in this current 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).'

View file

@ -2,7 +2,8 @@
# Docker autocompletion for oh-my-zsh
# Requires: Docker installed
# Author : Azaan (@aeonazaan)
# Author: Azaan (@aeonazaan)
# Updates: Bob Maerten (@bobmaerten) for Docker v0.9+
# ----- Helper functions
@ -24,21 +25,30 @@ __docker_images() {
# Seperate function for each command, makes extension easier later
# ---------------------------
__attach() {
_arguments \
'--no-stdin[Do not attach stdin]' \
'--sig-proxy[Proxify all received signal to the process (even in non-tty mode)]'
__docker_containers
}
__build() {
_arguments \
'-q=false[Suppress verbose build output]' \
'-t="[fuck to be applied to the resulting image in case of success]' \
'--no-cache[Do not use cache when building the image]' \
'(-q,--quiet)'{-q,--quiet}'[Suppress the verbose output generated by the containers]' \
'--rm[Remove intermediate containers after a successful build]' \
'(-t,--tag=)'{-t,--tag=}'[Repository name (and optionally a tag) to be applied to the resulting image in case of success]' \
'*:files:_files'
}
__commit() {
_arguments \
'-author="[Author]' \
'-m="[Commit message]' \
'-run="[Config automatically applied when the image is run.\n]'
'(-a,--author=)'{-a,--author=}'[Author (eg. "John Hannibal Smith <hannibal@a-team.com>"]' \
'(-m,--message=)'{-m,--message=}'[Commit message]' \
'--run=[Config automatically applied when the image is run.]'
__docker_containers
}
__cp() {
__docker_containers
}
@ -46,21 +56,29 @@ __diff() {
__docker_containers
}
__events() {
_arguments \
'--since=[Show previously created events and then stream.]'
}
__export() {
__docker_containers
}
__history() {
_arguments \
'--no-trunc=[Don''t truncate output]' \
'(-q,--quiet)'{-q,--quiet}'[Only show numeric IDs]'
__docker_images
}
__images() {
_arguments \
'-a[show all images]' \
'-notrunc[dont truncate output]' \
'-q[only show numeric IDs]' \
'-viz[output graph in graphviz format]'
'(-a,--all)'{-a,--all}'[Show all images (by default filter out the intermediate images used to build)]' \
'--no-trunc[Don''t truncate output]' \
'(-q,--quiet=)'{-q,--quiet=}'[Only show numeric IDs]' \
'(-t,--tree=)'{-t,--tree=}'[Output graph in tree format]' \
'(-v,--viz=)'{-v,--viz=}'[Output graph in graphviz format]'
__docker_images
}
@ -86,14 +104,20 @@ __kill() {
__docker_containers
}
__load() {
_arguments '*:files:_files'
}
__login() {
_arguments \
'-e="[email]' \
'-p="[password]' \
'-u="[username]' \
'(-e,--email=)'{-e,-email=}'[Email]' \
'(-p,--password=)'{-p,-password=}'[Password]' \
'(-u,--username=)'{-u,-username=}'[Username]'
}
__logs() {
_arguments \
'(-f,--follow)'{-f,-follow}'[Follow log output]'
__docker_containers
}
@ -107,77 +131,107 @@ __top() {
__ps() {
_arguments \
'-a[Show all containers. Only running containers are shown by default.]' \
'-beforeId="[Show only container created before Id, include non-running ones.]' \
'-l[Show only the latest created container, include non-running ones.]' \
'-n=[Show n last created containers, include non-running ones.]' \
'-notrunc[Dont truncate output]' \
'-q[Only display numeric IDs]' \
'-s[Display sizes]' \
'-sinceId="[Show only containers created since Id, include non-running ones.]'
'(-a,--all)'{-a,--all}'[Show all containers. Only running containers are shown by default.]' \
'--before-id=[Show only container created before Id, include non-running ones.]' \
'(-l,--latest)'{-l,--latest}'[Show only the latest created container, include non-running ones.]' \
'-n=[Show n last created containers, include non-running ones. default=-1.]' \
'--no-trunc[Don''t truncate output]' \
'(-q,--quiet)'{-q,--quiet}'[Only display numeric IDs]' \
'(-s,--size)'{-s,--size}'[Display sizes]' \
'--since-id=[Show only containers created since Id, include non-running ones.]'
}
__pull() {
_arguments '-t="[Download tagged image in repository]'
_arguments \
'(-t,--tag=)'{-t,--tag=}'[Download tagged image in repository]'
}
__push() {
# no arguments
}
__restart() {
_arguments '-t=[number of seconds to try to stop before killing]'
_arguments \
'(-t,--time=)'{-t,--time=}'[Number of seconds to try to stop for before killing the container. Once killed it will then be restarted. Default=10]'
__docker_containers
}
__rm() {
_arguments '-v[Remove the volumes associated to the container]'
_arguments \
'(-f,--force=)'{-f,--force=}'[Force removal of running container]' \
'(-l,--link=)'{-l,--link=}'[Remove the specified link and not the underlying container]' \
'(-v,--volumes=)'{-v,--volumes=}'[Remove the volumes associated to the container]'
__docker_containers
}
__rmi() {
_arguments \
'(-f,--force=)'{-f,--force=}'[Force]'
__docker_images
}
__run() {
_arguments \
'-a=[Attach to stdin, stdout or stderr.]' \
'-c=[CPU shares (relative weight)]' \
'-d[Detached mode: leave the container running in the background]' \
'-dns=[Set custom dns servers]' \
'-e=[Set environment variables]' \
'-entrypoint="[Overwrite the default entrypoint of the image]' \
'-h="[Container host name]' \
'-i[Keep stdin open even if not attached]' \
'-m=[Memory limit (in bytes)]' \
'-p=[Expose a containers port to the host (use docker port to see the actual mapping)]' \
'-t[Allocate a pseudo-tty]' \
'-u="[Username or UID]' \
'-v=[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
'-volumes-from="[Mount volumes from the specified container]'
'(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \
'(-a,--attach=)'{-a,--attach=}'[Attach to stdin, stdout or stderr.]' \
'(-c,--cpu-shares=)'{-c,--cpu-shares=}': CPU shares (relative weight)]' \
'--cidfile=[Write the container ID to the file]' \
'(-d,--detach=)'{-d,--detach=}'[Detached mode: Run container in the background, print new container id]' \
'--dns=[Set custom dns servers]' \
'(-e,--env=)'{-e,--env=}'[Set environment variables]' \
'--entrypoint=[Overwrite the default entrypoint of the image]' \
'--expose=[Expose a port from the container without publishing it to your host]' \
'(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \
'(-i,--interactive=)'{-i,--interactive=}'[Keep stdin open even if not attached]' \
'--link=[Add link to another container (name:alias)]' \
'--lxc-conf=[Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"]' \
'(-m,--memory=)'{-m,--memory=}'[Memory limit (format: <number><optional unit>, where unit = b, k, m or g)]' \
'(-n,--networking=)'{-n,--networking=}'[Enable networking for this container]' \
'--name=[Assign a name to the container]' \
'(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use "docker port" to see the actual mapping)]' \
'--privileged=[Give extended privileges to this container]' \
'--rm=[Automatically remove the container when it exits (incompatible with -d)]' \
'--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \
'(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \
'(-u,--user=)'{-u,--user=}'[Username or UID]' \
'(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
'--volumes-from=[Mount volumes from the specified container(s)]' \
'(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]'
__docker_images
}
__search() {
_arguments '-notrunc[Dont truncate output]'
_arguments \
'--no-trunc=[Don''t truncate output]' \
'-s,--stars=)'{-s,--stars=}'[Only displays with at least xxx stars]' \
'-t,--trusted=)'{-t,--trusted=}'[Only show trusted builds]'
}
__save() {
__docker_images
}
__start() {
_arguments \
'(-a,--attach=)'{-a,--attach=}'[Attach container''s stdout/stderr and forward all signals to the process]' \
'(-i,--interactive=)'{-i,--interactive=}'[Attach container''s stdin]'
__docker_containers
}
__stop() {
_arguments '-t=[number of seconds to try to stop before killing]'
_arguments \
'(-t,--time=)'{-t,--time=}'[Number of seconds to wait for the container to stop before killing it.]'
__docker_containers
}
__tag() {
_arguments '-f[Force]'
_arguments \
'(-f,--force=)'{-f,--force=}'[Force]'
__docker_images
}
__version() {
# no arguments
}
__wait() {
@ -192,7 +246,9 @@ _1st_arguments=(
"attach":"Attach to a running container"
"build":"Build a container from a Dockerfile"
"commit":"Create a new image from a container's changes"
"cp":"Copy files/folders from the containers filesystem to the host path"
"diff":"Inspect changes on a container's filesystem"
"events":"Get real time events from the server"
"export":"Stream the contents of a container as a tar archive"
"history":"Show the history of an image"
"images":"List images"
@ -201,10 +257,10 @@ _1st_arguments=(
"insert":"Insert a file in an image"
"inspect":"Return low-level information on a container"
"kill":"Kill a running container"
"load":"Load an image from a tar archive"
"login":"Register or Login to the docker registry server"
"logs":"Fetch the logs of a container"
"port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"
"top":"Lookup the running processes of a container"
"ps":"List containers"
"pull":"Pull an image or a repository from the docker registry server"
"push":"Push an image or a repository to the docker registry server"
@ -212,10 +268,12 @@ _1st_arguments=(
"rm":"Remove one or more containers"
"rmi":"Remove one or more images"
"run":"Run a command in a new container"
"save":"Save an image to a tar archive"
"search":"Search for an image in the docker index"
"start":"Start a stopped container"
"stop":"Stop a running container"
"tag":"Tag an image into a repository"
"top":"Lookup the running processes of a container"
"version":"Show the docker version information"
"wait":"Block until a container stops, then print its exit code"
)
@ -230,13 +288,17 @@ fi
local -a _command_args
case "$words[1]" in
attach)
__docker_containers ;;
__attach ;;
build)
__build ;;
commit)
__commit ;;
cp)
__cp ;;
diff)
__diff ;;
events)
__events ;;
export)
__export ;;
history)
@ -253,14 +315,14 @@ case "$words[1]" in
__inspect ;;
kill)
__kill ;;
load)
__load ;;
login)
__login ;;
logs)
__logs ;;
port)
__port ;;
top)
__top ;;
ps)
__ps ;;
pull)
@ -275,6 +337,8 @@ case "$words[1]" in
__rmi ;;
run)
__run ;;
save)
__save ;;
search)
__search ;;
start)
@ -283,6 +347,8 @@ case "$words[1]" in
__stop ;;
tag)
__tag ;;
top)
__top ;;
version)
__version ;;
wait)

View file

@ -3,7 +3,7 @@
# get list of available X windows.
x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null`
if [ -z "$x" ] ;then
if [ -z "$x" ] || [ "$x" = "nil" ] ;then
# Create one if there is no X window yet.
emacsclient --alternate-editor "" --create-frame "$@"
else

View file

@ -52,7 +52,7 @@ function extract() {
(*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;;
(*.Z) uncompress "$1" ;;
(*.zip|*.war|*.jar) unzip "$1" -d $extract_dir ;;
(*.zip|*.war|*.jar|*.sublime-package) unzip "$1" -d $extract_dir ;;
(*.rar) unrar x -ad "$1" ;;
(*.7z) 7za x "$1" ;;
(*.deb)

View file

@ -0,0 +1,82 @@
## Rationale ##
The idea for this script is to help searches in important doc contents from frontend.
## Instalation ##
I will send a Pull Request with this plugin for .oh-my-zsh official repository. If accept them, it's only add in plugins list that exists in ```.zshrc``` file.
For now, you can clone this repository and add in ```custom/plugins``` folder
```bash
$ git clone git://github.com/willmendesneto/frontend-search.git ~/.oh-my-zsh/custom/plugins/frontend-search
```
After this, restart your terminal and frontend-search plugin is configurated in you CLI.
```bash
...
plugins=( <your-plugins-list>... frontend-search)
...
```
## Commands ##
All command searches are accept only in format
* `frontend <search-content> <search-term>`
The search content are
* `jquery <api.jquery.com>`
* `mdn <developer.mozilla.org>`
* `compass <compass-style.org>`
* `html5please <html5please.com>`
* `caniuse <caniuse.com>`
* `aurajs <aurajs.com>`
* `dartlang <api.dartlang.org/apidocs/channels/stable/dartdoc-viewer>`
* `lodash <search>`
* `qunit <api.qunitjs.com>`
* `fontello <fontello.com>`
* `bootsnipp <bootsnipp.com>`
* `cssflow <cssflow.com>`
* `codepen <codepen.io>`
* `unheap <www.unheap.com>`
* `bem <google.com/search?as_q=<search-term>&as_sitesearch=bem.info>`
* `smacss <google.com/search?as_q=<search-term>&as_sitesearch=smacss.com>`
* `angularjs <google.com/search?as_q=<search-term>&as_sitesearch=angularjs.org>`
* `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>`
* `emberjs <emberjs.com>`
## Aliases ##
There are a few aliases presented as well:
* `jquery` A shorthand for `frontend jquery`
* `mdn` A shorthand for `frontend mdn`
* `compass` A shorthand for `frontend compass`
* `html5please` A shorthand for `frontend html5please`
* `caniuse` A shorthand for `frontend caniuse`
* `aurajs` A shorthand for `frontend aurajs`
* `dartlang` A shorthand for `frontend dartlang`
* `lodash` A shorthand for `frontend lodash`
* `qunit` A shorthand for `frontend qunit`
* `fontello` A shorthand for `frontend fontello`
* `bootsnipp` A shorthand for `frontend bootsnipp`
* `cssflow` A shorthand for `frontend cssflow`
* `codepen` A shorthand for `frontend codepen`
* `unheap` A shorthand for `frontend unheap`
* `bem` A shorthand for `frontend bem`
* `smacss` A shorthand for `frontend smacss`
* `angularjs` A shorthand for `frontend angularjs`
* `reactjs` A shorthand for `frontend reactjs`
* `emberjs` A shorthand for `frontend emberjs`
## Author
**Wilson Mendes (willmendesneto)**
+ <https://twitter.com/willmendesneto>
+ <http://github.com/willmendesneto>
New features comming soon.

View file

@ -0,0 +1,151 @@
# frontend from terminal
function frontend() {
# get the open command
local open_cmd
if [[ $(uname -s) == 'Darwin' ]]; then
open_cmd='open'
else
open_cmd='xdg-open'
fi
# no keyword provided, simply show how call methods
if [[ $# -le 1 ]]; then
echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n"
return 1
fi
# check whether the search engine is supported
if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs)' ]];
then
echo "Search valid search content $1 not supported."
echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
echo "* jquery"
echo "* mdn"
echo "* compass"
echo "* html5please"
echo "* caniuse"
echo "* aurajs"
echo "* dartlang"
echo "* lodash"
echo "* qunit"
echo "* fontello"
echo "* bootsnipp"
echo "* cssflow"
echo "* codepen"
echo "* unheap"
echo "* bem"
echo "* smacss"
echo "* angularjs"
echo "* reactjs"
echo "* emberjs"
echo ""
return 1
fi
local url="http://"
local query=""
case "$1" in
"jquery")
url="${url}api.jquery.com"
url="${url}/?s=$2" ;;
"mdn")
url="${url}developer.mozilla.org"
url="${url}/search?q=$2" ;;
"compass")
url="${url}compass-style.org"
url="${url}/search?q=$2" ;;
"html5please")
url="${url}html5please.com"
url="${url}/#$2" ;;
"caniuse")
url="${url}caniuse.com"
url="${url}/#search=$2" ;;
"aurajs")
url="${url}aurajs.com"
url="${url}/api/#stq=$2" ;;
"dartlang")
url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer"
url="${url}/dart-$2" ;;
"qunit")
url="${url}api.qunitjs.com"
url="${url}/?s=$2" ;;
"fontello")
url="${url}fontello.com"
url="${url}/#search=$2" ;;
"bootsnipp")
url="${url}bootsnipp.com"
url="${url}/search?q=$2" ;;
"cssflow")
url="${url}cssflow.com"
url="${url}/search?q=$2" ;;
"codepen")
url="${url}codepen.io"
url="${url}/search?q=$2" ;;
"unheap")
url="${url}www.unheap.com"
url="${url}/?s=$2" ;;
"bem")
url="${url}google.com"
url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;;
"smacss")
url="${url}google.com"
url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;;
"angularjs")
url="${url}google.com"
url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;;
"reactjs")
url="${url}google.com"
url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;;
"emberjs")
url="${url}emberjs.com"
url="${url}/api/#stq=$2&stp=1" ;;
*) echo "INVALID PARAM!"
return ;;
esac
echo "$url"
$open_cmd "$url"
}
# javascript
alias jquery='frontend jquery'
alias mdn='frontend mdn'
# pre processors frameworks
alias compass='frontend compass'
# important links
alias html5please='frontend html5please'
alias caniuse='frontend caniuse'
# components and libraries
alias aurajs='frontend aurajs'
alias dartlang='frontend dartlang'
alias lodash='frontend lodash'
#tests
alias qunit='frontend qunit'
#fonts
alias fontello='frontend fontello'
# snippets
alias bootsnipp='frontend bootsnipp'
alias cssflow='frontend cssflow'
alias codepen='frontend codepen'
alias unheap='frontend unheap'
# css architecture
alias bem='frontend bem'
alias smacss='frontend smacss'
# frameworks
alias angularjs='frontend angularjs'
alias reactjs='frontend reactjs'
alias emberjs='frontend emberjs'

View file

@ -13,6 +13,7 @@ case $state in
cmds=(
"version:Prints Gas's version"
"use:Uses author"
"ssh:Creates a new ssh key for an existing gas author"
"show:Shows your current user"
"list:Lists your authors"
"import:Imports current user to gasconfig"
@ -25,8 +26,12 @@ case $state in
args)
case $line[1] in
(use|delete)
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
;;
VERSION=$(gas -v)
if [[ $VERSION == <1->.*.* ]] || [[ $VERSION == 0.<2->.* ]] || [[ $VERSION == 0.1.<6-> ]] then
_values -S , 'authors' $(cat ~/.gas/gas.authors | sed -n -e 's/^.*\[\(.*\)\]/\1/p') && ret=0
else
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
fi
esac
;;
esac

View file

@ -56,6 +56,9 @@ if (( CURRENT == 1 )); then
fi
case "$words[1]" in
build)
_files -g "*.gemspec"
;;
list)
if [[ "$state" == forms ]]; then
_gem_installed

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python2
# -*- coding: UTF-8 -*-
from subprocess import Popen, PIPE
import re
@ -16,7 +16,7 @@ symbols = {
}
output, error = Popen(
['git', 'status'], stdout=PIPE, stderr=PIPE).communicate()
['git', 'status'], stdout=PIPE, stderr=PIPE, universal_newlines=True).communicate()
if error:
import sys

View file

@ -149,7 +149,7 @@ function work_in_progress() {
fi
}
# these alias commit and uncomit wip branches
alias gwip='git add -A; git ls-files --deleted -z | xargs -0 git rm; git commit -m "--wip--"'
alias gwip='git add -A; git ls-files --deleted -z | xargs -r0 git rm; git commit -m "--wip--"'
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
# these alias ignore changes to file

View file

@ -40,7 +40,7 @@ fi
#
# Use this when creating a new repo from scratch.
empty_gh() { # [NAME_OF_REPO]
repo = $1
repo=$1
ghuser=$( git config github.user )
mkdir "$repo"

1150
plugins/glassfish/_asadmin Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
# if there is a user named 'glassfish' on the system, we'll assume
# that is the user asadmin should be run as
# grep -e '^glassfish' /etc/passwd > /dev/null && alias asadmin='sudo -u glassfish asadmin'

View file

@ -158,3 +158,6 @@ __go_tool_complete() {
}
compdef __go_tool_complete go
# aliases
alias gfa='go fmt . ./...'

View file

@ -60,7 +60,7 @@ function in_gradle() {
############################################################################
_gradle_does_task_list_need_generating () {
[ ! -f .gradletasknamecache ] && return 0;
[ .gradletasknamecache -nt build.gradle ] && return 0;
[ build.gradle -nt .gradletasknamecache ] && return 0;
return 1;
}

0
plugins/grails/grails.plugin.zsh Executable file → Normal file
View file

View file

@ -163,8 +163,13 @@ function history-substring-search-down() {
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
zmodload zsh/terminfo
if [[ -n "$terminfo[kcuu1]" ]]; then
bindkey "$terminfo[kcuu1]" history-substring-search-up
fi
if [[ -n "$terminfo[kcud1]" ]]; then
bindkey "$terminfo[kcud1]" history-substring-search-down
fi
#-----------------------------------------------------------------------------
# implementation details

View file

@ -29,15 +29,23 @@ open_jira_issue () {
return 0
fi
if [ -f .jira-prefix ]; then
jira_prefix=$(cat .jira-prefix)
elif [ -f ~/.jira-prefix ]; then
jira_prefix=$(cat ~/.jira-prefix)
else
jira_prefix=""
fi
if [ -z "$1" ]; then
echo "Opening new issue"
$open_cmd "$jira_url/secure/CreateIssue!default.jspa"
else
echo "Opening issue #$1"
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
$open_cmd "$jira_url/issues/$1"
$open_cmd "$jira_url/issues/$jira_prefix$1"
else
$open_cmd "$jira_url/browse/$1"
$open_cmd "$jira_url/browse/$jira_prefix$1"
fi
fi
}

0
plugins/jruby/jruby.plugin.zsh Executable file → Normal file
View file

View file

@ -0,0 +1,42 @@
# jsontools
Handy command line tools for dealing with json data.
## Tools
- **pp_json** - pretty prints json
- **is_json** - returns true if valid json; false otherwise
- **urlencode_json** - returns a url encoded string for the given json
- **urldecode_json** - returns decoded json for the given url encoded string
## Usage
Usage is simple...just take your json data and pipe it into the appropriate jsontool.
```sh
<json data> | <jsontools tool>
```
## Examples
##### pp_json
```sh
# curl json data and pretty print the results
curl https://coderwall.com/bobwilliams.json | pp_json
```
##### is_json
```sh
# pretty print the contents of an existing json file
less data.json | is_json
```
##### urlencode_json
```sh
# json data directly from the command line
echo '{"b":2, "a":1}' | urlencode_json
```
##### urldecode_json
```sh
# url encoded string to decode
echo '%7B%22b%22:2,%20%22a%22:1%7D%0A' | urldecode_json
```

View file

@ -0,0 +1,39 @@
# JSON Tools
# Adds command line aliases useful for dealing with JSON
if [[ $(whence $JSONTOOLS_METHOD) = "" ]]; then
JSONTOOLS_METHOD=""
fi
if [[ $(whence node) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xnode" ) ]]; then
alias pp_json='xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"'
alias is_json='xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"'
alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"'
alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"'
elif [[ $(whence python) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xpython" ) ]]; then
alias pp_json='python -mjson.tool'
alias is_json='python -c "
import json, sys;
try:
json.loads(sys.stdin.read())
except ValueError, e:
print False
else:
print True
sys.exit(0)"'
alias urlencode_json='python -c "
import urllib, json, sys;
print urllib.quote_plus(sys.stdin.read())
sys.exit(0)"'
alias urldecode_json='python -c "
import urllib, json, sys;
print urllib.unquote_plus(sys.stdin.read())
sys.exit(0)"'
elif [[ $(whence ruby) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xruby" ) ]]; then
alias pp_json='ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"'
alias is_json='ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"'
alias urlencode_json='ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"'
alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"'
fi
unset JSONTOOLS_METHOD

View file

@ -39,7 +39,7 @@ marks() {
_completemarks() {
if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_\da-zA-Z\-]*):$/\2/g'))
reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_a-zA-Z0-9\.\-]*):$/\2/g'))
else
if readlink -e "${MARKPATH}"/* &>/dev/null; then
reply=($(ls "${MARKPATH}"))

View file

@ -31,7 +31,7 @@ _knife() {
case $state in
knifecmd)
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload windows $cloudproviders
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload vault windows $cloudproviders
;;
knifesubcmd)
case $words[2] in
@ -65,6 +65,9 @@ _knife() {
upload)
_arguments '*:file or directory:_files -g "*"'
;;
vault)
compadd -Q "$@" create decrypt delete edit remove "rotate all keys" "rotate keys" show update
;;
windows)
compadd "$@" bootstrap
;;

View file

@ -0,0 +1,20 @@
# Laravel4 basic command completion
_laravel4_get_command_list () {
php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
}
_laravel4 () {
if [ -f artisan ]; then
compadd `_laravel4_get_command_list`
fi
}
compdef _laravel4 artisan
compdef _laravel4 la4
#Alias
alias la4='php artisan'
alias la4dump='php artisan dump-autoload'
alias la4cache='php artisan cache:clear'
alias la4routes='php artisan routes'

View file

@ -16,6 +16,8 @@ alias hgs='hg status'
alias hgsl='hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
# this is the 'git commit --amend' equivalent
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
# list unresolved files (since hg does not list unmerged files in the status command)
alias hgun='hg resolve --list'
function in_hg() {
if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then

View file

@ -44,19 +44,22 @@ mvn-color()
# aliases
alias mvncie='mvn clean install eclipse:eclipse'
alias mvnci='mvn clean install'
alias mvncist='mvn clean install -DskipTests'
alias mvne='mvn eclipse:eclipse'
alias mvnce='mvn clean eclipse:clean eclipse:eclipse'
alias mvnd='mvn deploy'
alias mvnp='mvn package'
alias mvnc='mvn clean'
alias mvncom='mvn compile'
alias mvnct='mvn clean test'
alias mvnt='mvn test'
alias mvnag='mvn archetype:generate'
alias mvn-updates='mvn versions:display-dependency-updates'
alias mvntc7='mvn tomcat7:run'
alias mvntc='mvn tomcat:run'
alias mvnjetty='mvn jetty:run'
alias mvndt='mvn dependency:tree'
alias mvns='mvn site'
function listMavenCompletions {
reply=(
@ -126,6 +129,8 @@ function listMavenCompletions {
tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
# tomcat7
tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
# spring-boot
spring-boot:run spring-boot:repackage
# exec
exec:exec exec:java
# versions

View file

@ -174,20 +174,23 @@ function itunes() {
next|previous)
opt="$opt track"
;;
vol)
opt="set sound volume to $1" #$1 Due to the shift
;;
""|-h|--help)
echo "Usage: itunes <option>"
echo "option:"
echo "\tlaunch|play|pause|stop|rewind|resume|quit"
echo "\tmute|unmute\tcontrol volume set"
echo "\tnext|previous\tplay next or previous track"
echo "\tvol\tSet the volume, takes an argument from 0 to 100"
echo "\thelp\tshow this message and exit"
return 0
;;
*)
print "Unkonwn option: $opt"
print "Unknown option: $opt"
return 1
;;
esac
osascript -e "tell application \"iTunes\" to $opt"
}

View file

@ -0,0 +1,56 @@
[Per-Directory-History][6]
=========================
Per directory history for zsh, as well as global history, and the
ability to toggle between them with ^G.
This is a implementation of per directory history for zsh, some
implementations of which exist in bash[1][],[2][]. It also implements
a per-directory-history-toggle-history function to change from using the
directory history to using the global history. In both cases the history is
always saved to both the global history and the directory history, so the
toggle state will not effect the saved histories. Being able to switch
between global and directory histories on the fly is a novel feature as far
as I am aware.
This is a standalone repository for the script, however it is also included in
[oh-my-zsh][4] as a plugin.
----------------------------------------------------------------------------
Usage
----------------------------------------------------------------------------
1. Load this script into your interactive ZSH session:
% source zsh-per-directory-history.zsh
2. The default mode if per directory history, interact with your history as normal.
3. Press ^G (the Control and G keys simultaneously) to toggle between local
and global histories.
-------------------------------------------------------------------------------
Configuration
-------------------------------------------------------------------------------
* HISTORY_BASE a global variable that defines the base directory in which the
directory histories are stored
* per-directory-history-toggle-history is the function to toggle the history
-------------------------------------------------------------------------------
History
-------------------------------------------------------------------------------
The idea/inspiration for a per directory history is from [Stewart MacArthur][1]
and [Dieter][2], the implementation idea is from [Bart Schaefer][3]. The
implementation is by [Jim Hester][5] in September 2012.
[1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
[2]: http://dieter.plaetinck.be/per_directory_bash
[3]: http://www.zsh.org/mla/users/1997/msg00226.html
[4]: https://github.com/robbyrussell/oh-my-zsh
[5]: http://jimhester.com
[6]: http://github.com/jimhester/per-directory-history

View file

@ -1,149 +0,0 @@
#!/usr/bin/env zsh
#
# This is a implementation of per directory history for zsh, some
# implementations of which exist in bash[1,2]. It also implements
# a per-directory-history-toggle-history function to change from using the
# directory history to using the global history. In both cases the history is
# always saved to both the global history and the directory history, so the
# toggle state will not effect the saved histories. Being able to switch
# between global and directory histories on the fly is a novel feature as far
# as I am aware.
#
#-------------------------------------------------------------------------------
# Configuration
#-------------------------------------------------------------------------------
#
# HISTORY_BASE a global variable that defines the base directory in which the
# directory histories are stored
#
#-------------------------------------------------------------------------------
# History
#-------------------------------------------------------------------------------
#
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
# mailing list[3]. The implementation is by Jim Hester in September 2012.
#
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
# [2]: http://dieter.plaetinck.be/per_directory_bash
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
#
################################################################################
#
# Copyright (c) 2012 Jim Hester
#
# This software is provided 'as-is', without any express or implied warranty.
# In no event will the authors be held liable for any damages arising from the
# use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not claim
# that you wrote the original software. If you use this software in a product,
# an acknowledgment in the product documentation would be appreciated but is
# not required.
#
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
#
# 3. This notice may not be removed or altered from any source distribution..
#
################################################################################
#-------------------------------------------------------------------------------
# configuration, the base under which the directory histories are stored
#-------------------------------------------------------------------------------
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
#-------------------------------------------------------------------------------
# toggle global/directory history used for searching - ctrl-G by default
#-------------------------------------------------------------------------------
function per-directory-history-toggle-history() {
if [[ $_per_directory_history_is_global == true ]]; then
_per-directory-history-set-directory-history
print "\nusing local history\n"
else
_per-directory-history-set-global-history
print "\nusing global history\n"
fi
zle .push-line
zle .accept-line
}
autoload per-directory-history-toggle-history
zle -N per-directory-history-toggle-history
bindkey '^G' per-directory-history-toggle-history
#-------------------------------------------------------------------------------
# implementation details
#-------------------------------------------------------------------------------
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
function _per-directory-history-change-directory() {
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
mkdir -p ${_per_directory_history_directory:h}
if [[ $_per_directory_history_is_global == false ]]; then
#save to the global history
fc -AI $HISTFILE
#save history to previous file
local prev="$HISTORY_BASE${OLDPWD:A}/history"
mkdir -p ${prev:h}
fc -AI $prev
#discard previous directory's history
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
#read history in new file
if [[ -e $_per_directory_history_directory ]]; then
fc -R $_per_directory_history_directory
fi
fi
}
function _per-directory-history-addhistory() {
print -sr -- ${1%%$'\n'}
fc -p $_per_directory_history_directory
}
function _per-directory-history-set-directory-history() {
if [[ $_per_directory_history_is_global == true ]]; then
fc -AI $HISTFILE
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$_per_directory_history_directory" ]]; then
fc -R "$_per_directory_history_directory"
fi
fi
_per_directory_history_is_global=false
}
function _per-directory-history-set-global-history() {
if [[ $_per_directory_history_is_global == false ]]; then
fc -AI $_per_directory_history_directory
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$HISTFILE" ]]; then
fc -R "$HISTFILE"
fi
fi
_per_directory_history_is_global=true
}
#add functions to the exec list for chpwd and zshaddhistory
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
#start in directory mode
mkdir -p ${_per_directory_history_directory:h}
_per_directory_history_is_global=true
_per-directory-history-set-directory-history

View file

@ -0,0 +1 @@
per-directory-history.zsh

View file

@ -0,0 +1,149 @@
#!/usr/bin/env zsh
#
# This is a implementation of per directory history for zsh, some
# implementations of which exist in bash[1,2]. It also implements
# a per-directory-history-toggle-history function to change from using the
# directory history to using the global history. In both cases the history is
# always saved to both the global history and the directory history, so the
# toggle state will not effect the saved histories. Being able to switch
# between global and directory histories on the fly is a novel feature as far
# as I am aware.
#
#-------------------------------------------------------------------------------
# Configuration
#-------------------------------------------------------------------------------
#
# HISTORY_BASE a global variable that defines the base directory in which the
# directory histories are stored
#
#-------------------------------------------------------------------------------
# History
#-------------------------------------------------------------------------------
#
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
# mailing list[3]. The implementation is by Jim Hester in September 2012.
#
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
# [2]: http://dieter.plaetinck.be/per_directory_bash
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
#
################################################################################
#
# Copyright (c) 2012 Jim Hester
#
# This software is provided 'as-is', without any express or implied warranty.
# In no event will the authors be held liable for any damages arising from the
# use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not claim
# that you wrote the original software. If you use this software in a product,
# an acknowledgment in the product documentation would be appreciated but is
# not required.
#
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
#
# 3. This notice may not be removed or altered from any source distribution..
#
################################################################################
#-------------------------------------------------------------------------------
# configuration, the base under which the directory histories are stored
#-------------------------------------------------------------------------------
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
#-------------------------------------------------------------------------------
# toggle global/directory history used for searching - ctrl-G by default
#-------------------------------------------------------------------------------
function per-directory-history-toggle-history() {
if [[ $_per_directory_history_is_global == true ]]; then
_per-directory-history-set-directory-history
print -n "\nusing local history"
else
_per-directory-history-set-global-history
print -n "\nusing global history"
fi
zle .push-line
zle .accept-line
}
autoload per-directory-history-toggle-history
zle -N per-directory-history-toggle-history
bindkey '^G' per-directory-history-toggle-history
#-------------------------------------------------------------------------------
# implementation details
#-------------------------------------------------------------------------------
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
function _per-directory-history-change-directory() {
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
mkdir -p ${_per_directory_history_directory:h}
if [[ $_per_directory_history_is_global == false ]]; then
#save to the global history
fc -AI $HISTFILE
#save history to previous file
local prev="$HISTORY_BASE${OLDPWD:A}/history"
mkdir -p ${prev:h}
fc -AI $prev
#discard previous directory's history
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
#read history in new file
if [[ -e $_per_directory_history_directory ]]; then
fc -R $_per_directory_history_directory
fi
fi
}
function _per-directory-history-addhistory() {
print -Sr -- ${1%%$'\n'}
fc -p $_per_directory_history_directory
}
function _per-directory-history-set-directory-history() {
if [[ $_per_directory_history_is_global == true ]]; then
fc -AI $HISTFILE
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$_per_directory_history_directory" ]]; then
fc -R "$_per_directory_history_directory"
fi
fi
_per_directory_history_is_global=false
}
function _per-directory-history-set-global-history() {
if [[ $_per_directory_history_is_global == false ]]; then
fc -AI $_per_directory_history_directory
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$HISTFILE" ]]; then
fc -R "$HISTFILE"
fi
fi
_per_directory_history_is_global=true
}
#add functions to the exec list for chpwd and zshaddhistory
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
#start in directory mode
mkdir -p ${_per_directory_history_directory:h}
_per_directory_history_is_global=true
_per-directory-history-set-directory-history

View file

@ -1,4 +1,4 @@
#compdef pip
#compdef pip pip2 pip-2.7 pip3 pip-3.2 pip-3.3 pip-3.4
#autoload
# pip zsh completion, based on homebrew completion
@ -59,6 +59,7 @@ case "$words[1]" in
_arguments \
'(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
'(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
'(-r --requirement)'{-r,--requirement}'[Requirements file for packages to install]:File:_files' \
'(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
'(--no-install)--no-install[only download packages]' \
'(--no-download)--no-download[only install downloaded packages]' \

View file

@ -1,6 +1,8 @@
# Aliases to stop, start and restart Postgres
# Paths noted below are for Postgress installed via Homebrew on OSX
# Aliases to control Postgres
# Paths noted below are for Postgres installed via Homebrew on OSX
alias startpost='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias stoppost='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
alias restartpost='stoppost && sleep 1 && startpost'
alias restartpost='stoppost && sleep 1 && startpost'
alias reloadpost='pg_ctl reload -D /usr/local/var/postgres -s'
alias statuspost='pg_ctl status -D /usr/local/var/postgres -s'

View file

@ -8,21 +8,21 @@
# Supports command completion.
#
# If you are not already using completion you might need to enable it with
#
#
# autoload -U compinit compinit
#
# Changes:
#
# Defaults to the current application, and will walk up the tree to find
# Defaults to the current application, and will walk up the tree to find
# a config.ru file and restart the corresponding app
#
# Will Detect if a app does not exist in pow and print a (slightly) helpful
# Will Detect if a app does not exist in pow and print a (slightly) helpful
# error message
rack_root_detect(){
rack_root(){
setopt chaselinks
local orgdir=$(pwd)
local basedir=$(pwd)
local orgdir="$(pwd)"
local basedir="$(pwd)"
while [[ $basedir != '/' ]]; do
test -e "$basedir/config.ru" && break
@ -30,8 +30,13 @@ rack_root_detect(){
basedir="$(pwd)"
done
builtin cd $orgdir 2>/dev/null
builtin cd "$orgdir" 2>/dev/null
[[ ${basedir} == "/" ]] && return 1
echo $basedir
}
rack_root_detect(){
basedir=$(rack_root)
echo `basename $basedir | sed -E "s/.(com|net|org)//"`
}
@ -51,16 +56,30 @@ kapow(){
compctl -W ~/.pow -/ kapow
powit(){
local basedir=$(pwd)
local basedir="$(pwd)"
local vhost=$1
[ ! -n "$vhost" ] && vhost=$(rack_root_detect)
if [ ! -h ~/.pow/$vhost ]
then
echo "pow: Symlinking your app with pow. ${vhost}"
[ ! -d ~/.pow/${vhost} ] && ln -s $basedir ~/.pow/$vhost
then
echo "pow: Symlinking your app with pow. ${vhost}"
[ ! -d ~/.pow/${vhost} ] && ln -s "$basedir" ~/.pow/$vhost
return 1
fi
}
powed(){
local basedir="$(rack_root)"
find ~/.pow/ -type l -lname "*$basedir*" -exec basename {}'.dev' \;
}
# Restart pow process
# taken from http://www.matthewratzloff.com/blog/2011/12/23/restarting-pow-when-dns-stops-responding
repow(){
lsof | grep 20560 | awk '{print $2}' | xargs kill -9
launchctl unload ~/Library/LaunchAgents/cx.pow.powd.plist
launchctl load ~/Library/LaunchAgents/cx.pow.powd.plist
echo "restarted pow"
}
# View the standard out (puts) from any pow app
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"

View file

@ -0,0 +1,23 @@
# rake-fast
Fast rake autocompletion plugin.
This script caches the output for later usage and significantly speeds it up. It generates a .rake_tasks cache file in parallel to the Rakefile. It also checks the file modification dates to see if it needs to regenerate the cache file.
This is entirely based on [this pull request by Ullrich Schäfer](https://github.com/robb/.dotfiles/pull/10/), which is inspired by [this Ruby on Rails trick from 2006](http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/).
Think about that. 2006.
## Installation
Just add the plugin to your `.zshrc`:
```bash
plugins=(foo bar rake-fast)
```
You might consider adding `.rake_tasks` to your [global .gitignore](https://help.github.com/articles/ignoring-files#global-gitignore)
## Usage
`rake`, then press tab

View file

@ -0,0 +1,39 @@
_rake_refresh () {
if [ -f .rake_tasks ]; then
rm .rake_tasks
fi
echo "Generating .rake_tasks..." > /dev/stderr
_rake_generate
cat .rake_tasks
}
_rake_does_task_list_need_generating () {
if [ ! -f .rake_tasks ]; then return 0;
else
if [[ $(uname -s) == 'Darwin' ]]; then
accurate=$(stat -f%m .rake_tasks)
changed=$(stat -f%m Rakefile)
else
accurate=$(stat -c%Y .rake_tasks)
changed=$(stat -c%Y Rakefile)
fi
return $(expr $accurate '>=' $changed)
fi
}
_rake_generate () {
rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
}
_rake () {
if [ -f Rakefile ]; then
if _rake_does_task_list_need_generating; then
echo "\nGenerating .rake_tasks..." > /dev/stderr
_rake_generate
fi
compadd `cat .rake_tasks`
fi
}
compdef _rake rake
alias rake_refresh='_rake_refresh'

View file

@ -7,12 +7,9 @@ _rbenv-from-homebrew-installed() {
}
FOUND_RBENV=0
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv")
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" "/usr/local/opt/rbenv")
if _homebrew-installed && _rbenv-from-homebrew-installed ; then
rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
if [[ $RBENV_ROOT = '' ]]; then
RBENV_ROOT="$HOME/.rbenv"
fi
fi
for rbenvdir in "${rbenvdirs[@]}" ; do

View file

@ -10,3 +10,9 @@ compdef _repo rs='repo sync'
alias rsrra='repo sync ; repo rebase --auto-stash'
compdef _repo rsrra='repo sync ; repo rebase --auto-stash'
alias ru='repo upload'
compdef _repo ru='repo upload'
alias rst='repo status'
compdef _repo rst='repo status'

View file

@ -1,4 +1,4 @@
alias rsync-copy="rsync -av --progress -h"
alias rsync-move="rsync -av --progress -h --remove-source-files"
alias rsync-update="rsync -avu --progress -h"
alias rsync-synchronize="rsync -avu --delete --progress -h"
alias rsync-copy="rsync -avz --progress -h"
alias rsync-move="rsync -avz --progress -h --remove-source-files"
alias rsync-update="rsync -avzu --progress -h"
alias rsync-synchronize="rsync -avzu --delete --progress -h"

View file

@ -6,6 +6,7 @@ alias gemsets='rvm gemset list'
local ruby18='ruby-1.8.7'
local ruby19='ruby-1.9.3'
local ruby20='ruby-2.0.0'
local ruby21='ruby-2.1.2'
function rb18 {
if [ -z "$1" ]; then
@ -40,6 +41,17 @@ function rb20 {
_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`}
compdef _rb20 rb20
function rb21 {
if [ -z "$1" ]; then
rvm use "$ruby21"
else
rvm use "$ruby21@$1"
fi
}
_rb21() {compadd `ls -1 $rvm_path/gems | grep "^$ruby21@" | sed -e "s/^$ruby21@//" | awk '{print $1}'`}
compdef _rb21 rb21
function rvm-update {
rvm get head
}

122
plugins/scd/README.md Normal file
View file

@ -0,0 +1,122 @@
# scd - smart change of directory
Define `scd` shell function for changing to any directory with
a few keystrokes.
`scd` keeps history of the visited directories, which serves as an index of
the known paths. The directory index is updated after every `cd` command in
the shell and can be also filled manually by running `scd -a`. To switch to
some directory, `scd` needs few fragments of the desired path to match with
the index. A selection menu is displayed in case of several matches, with a
preference given to recently visited paths. `scd` can create permanent
directory aliases, which appear as named directories in zsh session.
## INSTALLATION
For oh-my-zsh, add `scd` to the `plugins` array in the ~/.zshrc file as in the
[template file](../../templates/zshrc.zsh-template#L45).
Besides zsh, `scd` can be used with *bash*, *dash* or *tcsh*
shells and is also available as [Vim](http://www.vim.org/) plugin and
[IPython](http://ipython.org/) extension. For installation details, see
https://github.com/pavoljuhas/smart-change-directory.
## SYNOPSIS
```sh
scd [options] [pattern1 pattern2 ...]
```
## OPTIONS
<dl><dt>
-a, --add</dt><dd>
add specified directories to the directory index.</dd><dt>
--unindex</dt><dd>
remove specified directories from the index.</dd><dt>
-r, --recursive</dt><dd>
apply options <em>--add</em> or <em>--unindex</em> recursively.</dd><dt>
--alias=ALIAS</dt><dd>
create alias for the current or specified directory and save it to
<em>~/.scdalias.zsh</em>.</dd><dt>
--unalias</dt><dd>
remove ALIAS definition for the current or specified directory from
<em>~/.scdalias.zsh</em>.</dd><dt>
--list</dt><dd>
show matching directories and exit.</dd><dt>
-v, --verbose</dt><dd>
display directory rank in the selection menu.</dd><dt>
-h, --help</dt><dd>
display this options summary and exit.</dd>
</dl>
## Examples
```sh
# Index recursively some paths for the very first run
scd -ar ~/Documents/
# Change to a directory path matching "doc"
scd doc
# Change to a path matching all of "a", "b" and "c"
scd a b c
# Change to a directory path that ends with "ts"
scd "ts(#e)"
# Show selection menu and ranking of 20 most likely directories
scd -v
# Alias current directory as "xray"
scd --alias=xray
# Jump to a previously defined aliased directory
scd xray
```
# FILES
<dl><dt>
~/.scdhistory</dt><dd>
time-stamped index of visited directories.</dd><dt>
~/.scdalias.zsh</dt><dd>
scd-generated definitions of directory aliases.</dd>
</dl>
# ENVIRONMENT
<dl><dt>
SCD_HISTFILE</dt><dd>
path to the scd index file (by default ~/.scdhistory).</dd><dt>
SCD_HISTSIZE</dt><dd>
maximum number of entries in the index (5000). Index is trimmed when it
exceeds <em>SCD_HISTSIZE</em> by more than 20%.</dd><dt>
SCD_MENUSIZE</dt><dd>
maximum number of items for directory selection menu (20).</dd><dt>
SCD_MEANLIFE</dt><dd>
mean lifetime in seconds for exponential decay of directory
likelihood (86400).</dd><dt>
SCD_THRESHOLD</dt><dd>
threshold for cumulative directory likelihood. Directories with
a lower likelihood compared to the best match are excluded (0.005).
</dd><dt>
SCD_SCRIPT</dt><dd>
command script file where scd writes the final <code>cd</code>
command. This variable must be defined when scd runs in its own
process rather than as a shell function. It is up to the
scd caller to use the output in <em>SCD_SCRIPT</em>.</dd>
</dl>

353
plugins/scd/scd Executable file
View file

@ -0,0 +1,353 @@
#!/bin/zsh -f
emulate -L zsh
local EXIT=return
if [[ $(whence -w $0) == *:' 'command ]]; then
emulate -R zsh
local RUNNING_AS_COMMAND=1
EXIT=exit
fi
local DOC='scd -- smart change to a recently used directory
usage: scd [options] [pattern1 pattern2 ...]
Go to a directory path that contains all fixed string patterns. Prefer
recently visited directories and directories with patterns in their tail
component. Display a selection menu in case of multiple matches.
Options:
-a, --add add specified directories to the directory index
--unindex remove specified directories from the index
-r, --recursive apply options --add or --unindex recursively
--alias=ALIAS create alias for the current or specified directory and
store it in ~/.scdalias.zsh
--unalias remove ALIAS definition for the current or specified
directory from ~/.scdalias.zsh
--list show matching directories and exit
-v, --verbose display directory rank in the selection menu
-h, --help display this message and exit
'
local SCD_HISTFILE=${SCD_HISTFILE:-${HOME}/.scdhistory}
local SCD_HISTSIZE=${SCD_HISTSIZE:-5000}
local SCD_MENUSIZE=${SCD_MENUSIZE:-20}
local SCD_MEANLIFE=${SCD_MEANLIFE:-86400}
local SCD_THRESHOLD=${SCD_THRESHOLD:-0.005}
local SCD_SCRIPT=${RUNNING_AS_COMMAND:+$SCD_SCRIPT}
local SCD_ALIAS=~/.scdalias.zsh
local ICASE a d m p i tdir maxrank threshold
local opt_help opt_add opt_unindex opt_recursive opt_verbose
local opt_alias opt_unalias opt_list
local -A drank dalias
local dmatching
local last_directory
setopt extendedhistory extendedglob noautonamedirs brace_ccl
# If SCD_SCRIPT is defined make sure the file exists and is empty.
# This removes any previous old commands.
[[ -n "$SCD_SCRIPT" ]] && [[ -s $SCD_SCRIPT || ! -f $SCD_SCRIPT ]] && (
umask 077
: >| $SCD_SCRIPT
)
# process command line options
zmodload -i zsh/zutil
zmodload -i zsh/datetime
zparseopts -D -- a=opt_add -add=opt_add -unindex=opt_unindex \
r=opt_recursive -recursive=opt_recursive \
-alias:=opt_alias -unalias=opt_unalias -list=opt_list \
v=opt_verbose -verbose=opt_verbose h=opt_help -help=opt_help \
|| $EXIT $?
if [[ -n $opt_help ]]; then
print $DOC
$EXIT
fi
# load directory aliases if they exist
[[ -r $SCD_ALIAS ]] && source $SCD_ALIAS
# works faster than the (:a) modifier and is compatible with zsh 4.2.6
_scd_Y19oug_abspath() {
set -A $1 ${(ps:\0:)"$(
unfunction -m "*"; shift
for d; do
cd $d && print -Nr -- $PWD && cd $OLDPWD
done
)"}
}
# define directory alias
if [[ -n $opt_alias ]]; then
if [[ -n $1 && ! -d $1 ]]; then
print -u2 "'$1' is not a directory."
$EXIT 1
fi
a=${opt_alias[-1]#=}
_scd_Y19oug_abspath d ${1:-$PWD}
# alias in the current shell, update alias file if successful
hash -d -- $a=$d &&
(
umask 077
hash -dr
[[ -r $SCD_ALIAS ]] && source $SCD_ALIAS
hash -d -- $a=$d
hash -dL >| $SCD_ALIAS
)
$EXIT $?
fi
# undefine directory alias
if [[ -n $opt_unalias ]]; then
if [[ -n $1 && ! -d $1 ]]; then
print -u2 "'$1' is not a directory."
$EXIT 1
fi
_scd_Y19oug_abspath a ${1:-$PWD}
a=$(print -rD ${a})
if [[ $a != [~][^/]## ]]; then
$EXIT
fi
a=${a#[~]}
# unalias in the current shell, update alias file if successful
if unhash -d -- $a 2>/dev/null && [[ -r $SCD_ALIAS ]]; then
(
umask 077
hash -dr
source $SCD_ALIAS
unhash -d -- $a 2>/dev/null &&
hash -dL >| $SCD_ALIAS
)
fi
$EXIT $?
fi
# Rewrite directory index if it is at least 20% oversized
if [[ -s $SCD_HISTFILE ]] && \
(( $(wc -l <$SCD_HISTFILE) > 1.2 * $SCD_HISTSIZE )); then
m=( ${(f)"$(<$SCD_HISTFILE)"} )
print -lr -- ${m[-$SCD_HISTSIZE,-1]} >| ${SCD_HISTFILE}
fi
# Determine the last recorded directory
if [[ -s ${SCD_HISTFILE} ]]; then
last_directory=${"$(tail -1 ${SCD_HISTFILE})"#*;}
fi
# Internal functions are prefixed with "_scd_Y19oug_".
# The "record" function adds its arguments to the directory index.
_scd_Y19oug_record() {
while [[ -n $last_directory && $1 == $last_directory ]]; do
shift
done
if [[ $# -gt 0 ]]; then
( umask 077
p=": ${EPOCHSECONDS}:0;"
print -lr -- ${p}${^*} >>| $SCD_HISTFILE )
fi
}
if [[ -n $opt_add ]]; then
for d; do
if [[ ! -d $d ]]; then
print -u2 "Directory '$d' does not exist."
$EXIT 2
fi
done
_scd_Y19oug_abspath m ${*:-$PWD}
_scd_Y19oug_record $m
if [[ -n $opt_recursive ]]; then
for d in $m; do
print -n "scanning ${d} ... "
_scd_Y19oug_record ${d}/**/*(-/N)
print "[done]"
done
fi
$EXIT
fi
# take care of removing entries from the directory index
if [[ -n $opt_unindex ]]; then
if [[ ! -s $SCD_HISTFILE ]]; then
$EXIT
fi
# expand existing directories in the argument list
for i in {1..$#}; do
if [[ -d ${argv[i]} ]]; then
_scd_Y19oug_abspath d ${argv[i]}
argv[i]=${d}
fi
done
m="$(awk -v recursive=${opt_recursive} '
BEGIN {
for (i = 2; i < ARGC; ++i) {
argset[ARGV[i]] = 1;
delete ARGV[i];
}
}
1 {
d = $0; sub(/^[^;]*;/, "", d);
if (d in argset) next;
}
recursive {
for (a in argset) {
if (substr(d, 1, length(a) + 1) == a"/") next;
}
}
{ print $0 }
' $SCD_HISTFILE ${*:-$PWD} )" || $EXIT $?
: >| ${SCD_HISTFILE}
[[ ${#m} == 0 ]] || print -r -- $m >> ${SCD_HISTFILE}
$EXIT
fi
# The "action" function is called when there is just one target directory.
_scd_Y19oug_action() {
cd $1 || return $?
if [[ -z $SCD_SCRIPT && -n $RUNNING_AS_COMMAND ]]; then
print -u2 "Warning: running as command with SCD_SCRIPT undefined."
fi
if [[ -n $SCD_SCRIPT ]]; then
print -r "cd ${(q)1}" >| $SCD_SCRIPT
fi
}
# Match and rank patterns to the index file
# set global arrays dmatching and drank
_scd_Y19oug_match() {
## single argument that is an existing directory or directory alias
if [[ $# == 1 ]] && \
[[ -d ${d::=$1} || -d ${d::=${nameddirs[$1]}} ]] && [[ -x $d ]];
then
_scd_Y19oug_abspath dmatching $d
drank[${dmatching[1]}]=1
return
fi
# ignore case unless there is an argument with an uppercase letter
[[ "$*" == *[[:upper:]]* ]] || ICASE='(#i)'
# calculate rank of all directories in the SCD_HISTFILE and keep it as drank
# include a dummy entry for splitting of an empty string is buggy
[[ -s $SCD_HISTFILE ]] && drank=( ${(f)"$(
print -l /dev/null -10
<$SCD_HISTFILE \
awk -v epochseconds=$EPOCHSECONDS -v meanlife=$SCD_MEANLIFE '
BEGIN { FS = "[:;]"; }
length($0) < 4096 && $2 > 0 {
tau = 1.0 * ($2 - epochseconds) / meanlife;
if (tau < -4.61) tau = -4.61;
prec = exp(tau);
sub(/^[^;]*;/, "");
if (NF) ptot[$0] += prec;
}
END { for (di in ptot) { print di; print ptot[di]; } }'
)"}
)
unset "drank[/dev/null]"
# filter drank to the entries that match all arguments
for a; do
p=${ICASE}"*${a}*"
drank=( ${(kv)drank[(I)${~p}]} )
done
# build a list of matching directories reverse-sorted by their probabilities
dmatching=( ${(f)"$(
for d p in ${(kv)drank}; do
print -r -- "$p $d";
done | sort -grk1 | cut -d ' ' -f 2-
)"}
)
# if some directory paths match all patterns in order, discard all others
p=${ICASE}"*${(j:*:)argv}*"
m=( ${(M)dmatching:#${~p}} )
[[ -d ${m[1]} ]] && dmatching=( $m )
# if some directory names match last pattern, discard all others
p=${ICASE}"*${(j:*:)argv}[^/]#"
m=( ${(M)dmatching:#${~p}} )
[[ -d ${m[1]} ]] && dmatching=( $m )
# if some directory names match all patterns, discard all others
m=( $dmatching )
for a; do
p=${ICASE}"*/[^/]#${a}[^/]#"
m=( ${(M)m:#${~p}} )
done
[[ -d ${m[1]} ]] && dmatching=( $m )
# if some directory names match all patterns in order, discard all others
p=${ICASE}"/*${(j:[^/]#:)argv}[^/]#"
m=( ${(M)dmatching:#${~p}} )
[[ -d ${m[1]} ]] && dmatching=( $m )
# do not match $HOME or $PWD when run without arguments
if [[ $# == 0 ]]; then
dmatching=( ${dmatching:#(${HOME}|${PWD})} )
fi
# keep at most SCD_MENUSIZE of matching and valid directories
m=( )
for d in $dmatching; do
[[ ${#m} == $SCD_MENUSIZE ]] && break
[[ -d $d && -x $d ]] && m+=$d
done
dmatching=( $m )
# find the maximum rank
maxrank=0.0
for d in $dmatching; do
[[ ${drank[$d]} -lt maxrank ]] || maxrank=${drank[$d]}
done
# discard all directories below the rank threshold
threshold=$(( maxrank * SCD_THRESHOLD ))
dmatching=( ${^dmatching}(Ne:'(( ${drank[$REPLY]} >= threshold ))':) )
}
_scd_Y19oug_match $*
## process whatever directories that remained
if [[ ${#dmatching} == 0 ]]; then
print -u2 "No matching directory."
$EXIT 1
fi
## build formatted directory aliases for selection menu or list display
for d in $dmatching; do
if [[ -n ${opt_verbose} ]]; then
dalias[$d]=$(printf "%.3g %s" ${drank[$d]} $d)
else
dalias[$d]=$(print -Dr -- $d)
fi
done
## process the --list option
if [[ -n $opt_list ]]; then
for d in $dmatching; do
print -r -- "# ${dalias[$d]}"
print -r -- $d
done
$EXIT
fi
## process single directory match
if [[ ${#dmatching} == 1 ]]; then
_scd_Y19oug_action $dmatching
$EXIT $?
fi
## here we have multiple matches - display selection menu
a=( {a-z} {A-Z} )
p=( )
for i in {1..${#dmatching}}; do
[[ -n ${a[i]} ]] || break
p+="${a[i]}) ${dalias[${dmatching[i]}]}"
done
print -c -r -- $p
if read -s -k 1 d && [[ ${i::=${a[(I)$d]}} -gt 0 ]]; then
_scd_Y19oug_action ${dmatching[i]}
$EXIT $?
fi

View file

@ -0,0 +1,19 @@
## The scd script should autoload as a shell function.
autoload scd
## If the scd function exists, define a change-directory-hook function
## to record visited directories in the scd index.
if [[ ${+functions[scd]} == 1 ]]; then
scd_chpwd_hook() { scd --add $PWD }
autoload add-zsh-hook
add-zsh-hook chpwd scd_chpwd_hook
fi
## Allow scd usage with unquoted wildcard characters such as "*" or "?".
alias scd='noglob scd'
## Load the directory aliases created by scd if any.
if [[ -s ~/.scdalias.zsh ]]; then source ~/.scdalias.zsh; fi

View file

@ -1,7 +1,7 @@
#
# INSTRUCTIONS
#
# To enabled agent forwarding support add the following to
# To enable agent forwarding support add the following to
# your .zshrc file:
#
# zstyle :omz:plugins:ssh-agent agent-forwarding on
@ -27,7 +27,7 @@
# Florent Thoumie and Jonas Pfenniger
#
local _plugin__ssh_env=$HOME/.ssh/environment-$HOST
local _plugin__ssh_env
local _plugin__forwarding
function _plugin__start_agent()
@ -42,12 +42,20 @@ function _plugin__start_agent()
. ${_plugin__ssh_env} > /dev/null
# load identies
zstyle -a :omz:plugins:ssh-agent identities identities
zstyle -a :omz:plugins:ssh-agent identities identities
echo starting ssh-agent...
/usr/bin/ssh-add $HOME/.ssh/${^identities}
}
# Get the filename to store/lookup the environment from
if (( $+commands[scutil] )); then
# It's OS X!
_plugin__ssh_env="$HOME/.ssh/environment-$(scutil --get ComputerName)"
else
_plugin__ssh_env="$HOME/.ssh/environment-$HOST"
fi
# test if agent-forwarding is enabled
zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then

1
plugins/sublime/sublime.plugin.zsh Executable file → Normal file
View file

@ -7,6 +7,7 @@ if [[ $('uname') == 'Linux' ]]; then
"/opt/sublime_text/sublime_text"
"/usr/bin/sublime_text"
"/usr/local/bin/sublime_text"
"/usr/bin/subl"
)
for _sublime_path in $_sublime_linux_paths; do
if [[ -a $_sublime_path ]]; then

View file

@ -9,7 +9,7 @@ function svn_prompt_info() {
_DISPLAY=$(svn_get_repo_name)
fi
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$(svn_dirty_pwd)$ZSH_PROMPT_BASE_COLOR"
unset _DISPLAY
fi
}
@ -74,3 +74,22 @@ function svn_dirty_choose() {
function svn_dirty() {
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
}
function svn_dirty_choose_pwd () {
if in_svn; then
root=`pwd`
if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then
# Grep exits with 0 when "One or more lines were selected", return "dirty".
echo $1
else
# Otherwise, no lines were found, or an error occurred. Return clean.
echo $2
fi
fi
}
function svn_dirty_pwd () {
svn_dirty_choose_pwd $ZSH_THEME_SVN_PROMPT_DIRTY_PWD $ZSH_THEME_SVN_PROMPT_CLEAN_PWD
}

View file

@ -1,21 +1,23 @@
# Symfony2 basic command completion
_symfony2_get_command_list () {
php app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
php $(find . -maxdepth 2 -mindepth 1 -name 'console') --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
}
_symfony2 () {
if [ -f app/console ]; then
if [ -f $(find . -maxdepth 2 -mindepth 1 -name 'console') ]; then
compadd `_symfony2_get_command_list`
fi
}
compdef _symfony2 app/console
compdef _symfony2 $(find . -maxdepth 2 -mindepth 1 -name 'console')
compdef _symfony2 sf
#Alias
alias sf='php app/console'
alias sfcl='php app/console cache:clear'
alias sfroute='php app/console router:debug'
alias sfgb='php app/console generate:bundle'
alias sf='php $(find . -maxdepth 2 -mindepth 1 -name 'console') '
alias sfcl='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:clear'
alias sfcw='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:warmup'
alias sfroute='php $(find . -maxdepth 2 -mindepth 1 -name 'console') router:debug'
alias sfcontainer='php $(find . -maxdepth 2 -mindepth 1 -name 'console') container:debug'
alias sfgb='php $(find . -maxdepth 2 -mindepth 1 -name 'console') generate:bundle'

View file

@ -6,19 +6,26 @@
local -a _1st_arguments
_1st_arguments=(
'box:Box commands'
'connect:Connects to a shared, remote Vagrant environment'
'destroy:Destroys the vagrant environment'
'docker-logs:Shows Docker logs'
'docker-run:Run one-off commands against a Docker container'
'global-status:Reports the status of all active Vagrant environments on the system'
'halt:Halts the currently running vagrant environment'
'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
'login:Authenticates against a Vagrant Cloud server to access protected boxes'
'package:Packages a vagrant environment for distribution'
'plugin:Plugin commands'
'provision:Run the provisioner'
'reload:Reload the vagrant environment'
'resume:Resumes a suspend vagrant environment'
'share:Shares the Vagrant environment and allows remote access'
'ssh:SSH into the currently running environment'
'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh.'
'status:Shows the status of the current Vagrant environment.'
'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh'
'status:Shows the status of the current Vagrant environment'
'suspend:Suspends the currently running vagrant environment'
'up:Creates the vagrant environment'
'version:Prints the currently installed Vagrant version and checks for new updates'
'--help:[TASK] Describe available tasks or one specific task'
'--version:Prints the Vagrant version information'
)
@ -44,7 +51,7 @@ __task_list ()
__box_list ()
{
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
_wanted application expl 'command' compadd $(command vagrant box list | sed -e 's/ /\\ /g')
}
__vm_list ()

View file

@ -17,9 +17,15 @@ function zle-keymap-select zle-line-init zle-line-finish {
zle -N zle-line-init
zle -N zle-line-finish
zle -N zle-keymap-select
zle -N edit-command-line
bindkey -v
# allow v to edit the command line (standard behaviour)
autoload -Uz edit-command-line
bindkey -M vicmd 'v' edit-command-line
# if mode indicator wasn't setup by theme, define default
if [[ "$MODE_INDICATOR" == "" ]]; then
MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"

View file

@ -0,0 +1,82 @@
# Vim Interaction #
The plugin presents a function called `callvim` whose usage is:
usage: callvim [-b cmd] [-a cmd] [file ... fileN]
-b cmd Run this command in GVIM before editing the first file
-a cmd Run this command in GVIM after editing the first file
file The file to edit
... fileN The other files to add to the argslist
## Rationale ##
The idea for this script is to give you some decent interaction with a running
GVim session. Normally you'll be running around your filesystem doing any
number of amazing things and you'll need to load some files into GVim for
editing, inspecting, destruction, or other bits of mayhem. This script lets you
do that.
## Aliases ##
There are a few aliases presented as well:
* `v` A shorthand for `callvim`
* `vvsp` Edits the passed in file but first makes a vertical split
* `vhsp` Edits the passed in file but first makes a horizontal split
## Post Callout ##
At the end of the `callvim` function we invoke the `postCallVim` function if it
exists. If you're using MacVim, for example, you could define a function that
brings window focus to it after the file is loaded:
function postCallVim
{
osascript -e 'tell application "MacVim" to activate'
}
This'll be different depending on your OS / Window Manager.
## Examples ##
This will load `/tmp/myfile.scala` into the running GVim session:
> v /tmp/myfile.scala
This will load it after first doing a vertical split:
> vvsp /tmp/myfile.scala
or
> v -b':vsp' /tmp/myfile.scala
This will load it after doing a horizontal split, then moving to the bottom of
the file:
> vhsp -aG /tmp/myfile.scala
or
> v -b':sp' -aG /tmp/myfile.scala
This will load the file and then copy the first line to the end (Why you would
ever want to do this... I dunno):
> v -a':1t$' /tmp/myfile.scala
And this will load all of the `*.txt` files into the args list:
> v *.txt
If you want to load files into areas that are already split, use one of the
aliases for that:
# Do a ':wincmd h' first
> vh /tmp/myfile.scala
# Do a ':wincmd j' first
> vj /tmp/myfile.scala
# Do a ':wincmd k' first
> vk /tmp/myfile.scala
# Do a ':wincmd l' first
> vl /tmp/myfile.scala

View file

@ -0,0 +1,72 @@
#
# See README.md
#
# Derek Wyatt (derek@{myfirstnamemylastname}.org
#
function resolveFile
{
if [ -f "$1" ]; then
echo $(readlink -f "$1")
elif [[ "${1#/}" == "$1" ]]; then
echo "$(pwd)/$1"
else
echo $1
fi
}
function callvim
{
if [[ $# == 0 ]]; then
cat <<EOH
usage: callvim [-b cmd] [-a cmd] [file ... fileN]
-b cmd Run this command in GVIM before editing the first file
-a cmd Run this command in GVIM after editing the first file
file The file to edit
... fileN The other files to add to the argslist
EOH
return 0
fi
local cmd=""
local before="<esc>"
local after=""
while getopts ":b:a:" option
do
case $option in
a) after="$OPTARG"
;;
b) before="$OPTARG"
;;
esac
done
shift $((OPTIND-1))
if [[ ${after#:} != $after && ${after%<cr>} == $after ]]; then
after="$after<cr>"
fi
if [[ ${before#:} != $before && ${before%<cr>} == $before ]]; then
before="$before<cr>"
fi
local files=""
for f in $@
do
files="$files $(resolveFile $f)"
done
if [[ -n $files ]]; then
files=':args! '"$files<cr>"
fi
cmd="$before$files$after"
gvim --remote-send "$cmd"
if typeset -f postCallVim > /dev/null; then
postCallVim
fi
}
alias v=callvim
alias vvsp="callvim -b':vsp'"
alias vhsp="callvim -b':sp'"
alias vk="callvim -b':wincmd k'"
alias vj="callvim -b':wincmd j'"
alias vl="callvim -b':wincmd l'"
alias vh="callvim -b':wincmd h'"

View file

@ -1,4 +1,4 @@
virtualenvwrapper='virtualenvwrapper_lazy.sh'
virtualenvwrapper='virtualenvwrapper.sh'
if (( $+commands[$virtualenvwrapper] )); then
source ${${virtualenvwrapper}:c}
@ -17,7 +17,7 @@ if (( $+commands[$virtualenvwrapper] )); then
# Check for virtualenv name override
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then
elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then
ENV_NAME="$PROJECT_ROOT/.venv"
elif [[ "$PROJECT_ROOT" != "." ]]; then
ENV_NAME=`basename "$PROJECT_ROOT"`

View file

@ -4,7 +4,7 @@ function vundle-init () {
mkdir -p ~/.vim/bundle/vundle/
fi
if [ ! -d ~/.vim/bundle/vundle/.git/ ]
if [ ! -d ~/.vim/bundle/vundle/.git ] && [ ! -f ~/.vim/bundle/vundle/.git ]
then
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n"

0
plugins/wd/wd.plugin.zsh Executable file → Normal file
View file

View file

@ -58,7 +58,7 @@ wd_warp()
#wd_print_msg $BLUE "Warping..."
cd ${points[$1]}
else
wd_print_msg $RED "Unkown warp point '$1'"
wd_print_msg $RED "Unknown warp point '$1'"
fi
}

View file

@ -1,6 +1,6 @@
#xc function courtesy of http://gist.github.com/subdigital/5420709
function xc {
xcode_proj=`find . -name "*.xc*" -d 1 | sort -r | head -1`
xcode_proj=`ls | grep "\.xc" | sort -r | head -1`
if [[ `echo -n $xcode_proj | wc -m` == 0 ]]
then
echo "No xcworkspace/xcodeproj file found in the current directory."

View file

@ -0,0 +1,12 @@
# reload zshrc
function src()
{
autoload -U compinit zrecompile
compinit -d "$ZSH/cache/zcomp-$HOST"
for f in ~/.zshrc "$ZSH/cache/zcomp-$HOST"; do
zrecompile -p $f && command rm -f $f.zwc.old
done
source ~/.zshrc
}