start out with thoughtbots version

This commit is contained in:
Thomas Ruoff
2017-08-13 23:14:19 +02:00
parent e2663a5f4b
commit a638143b7f
24 changed files with 279 additions and 123 deletions

7
zsh/completion/_ag Normal file
View File

@@ -0,0 +1,7 @@
#compdef ag
if (( CURRENT == 2 )); then
compadd $(cut -f 1 tmp/tags .git/tags 2>/dev/null)
else;
_files
fi

72
zsh/completion/_bundler Normal file
View File

@@ -0,0 +1,72 @@
#compdef bundle
local curcontext="$curcontext" state line _gems _opts ret=1
_arguments -C -A "-v" -A "--version" \
'(- 1 *)'{-v,--version}'[display version information]' \
'1: :->cmds' \
'*:: :->args' && ret=0
case $state in
cmds)
_values "bundle command" \
"install[Install the gems specified by the Gemfile or Gemfile.lock]" \
"update[Update dependencies to their latest versions]" \
"package[Package the .gem files required by your application]" \
"exec[Execute a script in the context of the current bundle]" \
"config[Specify and read configuration options for bundler]" \
"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]" \
"console[Start an IRB session in the context of the current bundle]" \
"open[Open an installed gem in the editor]" \
"lock[Generate a lockfile for your dependencies]" \
"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]" \
"help[Describe available tasks or one specific task]" \
"platform[Displays platform compatibility information]" \
"outdated[Show all of the outdated gems in the current bundle]" \
"clean[Cleans up unused gems in your bundler directory]"
ret=0
;;
args)
case $line[1] in
help)
_values 'commands' 'install' 'update' 'package' 'exec' 'config' 'check' 'list' 'show' 'console' 'open' 'lock' 'viz' 'init' 'gem' 'help' 'platform' 'outdated' 'clean' && ret=0
;;
install)
_arguments \
'(--no-color)--no-color[disable colorization in output]' \
'(--local)--local[do not attempt to connect to rubygems.org]' \
'(--quiet)--quiet[only output warnings and errors]' \
'(--gemfile)--gemfile=-[use the specified gemfile instead of Gemfile]:gemfile' \
'(--system)--system[install to the system location]' \
'(--deployment)--deployment[install using defaults tuned for deployment environments]' \
'(--frozen)--frozen[do not allow the Gemfile.lock to be updated after this install]' \
'(--path)--path=-[specify a different path than the system default]:path:_files' \
'(--binstubs)--binstubs=-[generate bin stubs for bundled gems to ./bin]:directory:_files' \
'(--without)--without=-[exclude gems that are part of the specified named group]:groups'
ret=0
;;
exec)
_normal && ret=0
;;
(open|show)
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
if [[ $_gems != "" ]]; then
_values 'gems' $_gems && ret=0
fi
;;
*)
_opts=( $(bundle help $line[1] | sed -e '/^ \[-/!d; s/^ \[\(-[^=]*\)=.*/\1/') )
_opts+=( $(bundle help $line[1] | sed -e '/^ -/!d; s/^ \(-.\), \[\(-[^=]*\)=.*/\1 \2/') )
if [[ $_opts != "" ]]; then
_values 'options' $_opts && ret=0
fi
;;
esac
;;
esac
return ret

2
zsh/completion/_g Normal file
View File

@@ -0,0 +1,2 @@
#compdef g
compdef g=git

View File

@@ -0,0 +1,2 @@
#compdef production
compdef production=heroku

3
zsh/completion/_rspec Normal file
View File

@@ -0,0 +1,3 @@
#compdef rspec
compadd -P spec/ $(ls spec/**/*_spec.rb | sed -E "s/spec\///g")

2
zsh/completion/_staging Normal file
View File

@@ -0,0 +1,2 @@
#compdef staging
compdef staging=heroku

6
zsh/configs/color.zsh Normal file
View File

@@ -0,0 +1,6 @@
# makes color constants available
autoload -U colors
colors
# enable colored output from ls, etc. on FreeBSD-based systems
export CLICOLOR=1

2
zsh/configs/editor.zsh Normal file
View File

@@ -0,0 +1,2 @@
export VISUAL=vim
export EDITOR=$VISUAL

4
zsh/configs/history.zsh Normal file
View File

@@ -0,0 +1,4 @@
setopt hist_ignore_all_dups inc_append_history
HISTFILE=~/.zhistory
HISTSIZE=4096
SAVEHIST=4096

View File

@@ -0,0 +1,17 @@
# give us access to ^Q
stty -ixon
# vi mode
bindkey -v
bindkey "^F" vi-cmd-mode
# handy keybindings
bindkey "^A" beginning-of-line
bindkey "^E" end-of-line
bindkey "^K" kill-line
bindkey "^R" history-incremental-search-backward
bindkey "^P" history-search-backward
bindkey "^Y" accept-and-hold
bindkey "^N" insert-last-word
bindkey "^Q" push-line-or-edit
bindkey -s "^T" "^[Isudo ^[A" # "t" for "toughguy"

9
zsh/configs/options.zsh Normal file
View File

@@ -0,0 +1,9 @@
# awesome cd movements from zshkit
setopt autocd autopushd pushdminus pushdsilent pushdtohome cdablevars
DIRSTACKSIZE=5
# Enable extended globbing
setopt extendedglob
# Allow [ or ] whereever you want
unsetopt nomatch

View File

@@ -0,0 +1,6 @@
# load our own completion functions
fpath=(~/.zsh/completion /usr/local/share/zsh/site-functions $fpath)
# completion
autoload -U compinit
compinit

12
zsh/configs/post/path.zsh Normal file
View File

@@ -0,0 +1,12 @@
# ensure dotfiles bin directory is loaded first
PATH="$HOME/.bin:/usr/local/sbin:$PATH"
# load rbenv if available
if command -v rbenv >/dev/null; then
eval "$(rbenv init - --no-rehash)"
fi
# mkdir .git/safe in the root of repositories you trust
PATH=".git/safe/../../bin:$PATH"
export -U PATH

9
zsh/configs/prompt.zsh Normal file
View File

@@ -0,0 +1,9 @@
# modify the prompt to contain git branch name if applicable
git_prompt_info() {
current_branch=$(git current-branch 2> /dev/null)
if [[ -n $current_branch ]]; then
echo " %{$fg_bold[green]%}$current_branch%{$reset_color%}"
fi
}
setopt promptsubst
PS1='${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[blue]%}%c%{$reset_color%}$(git_prompt_info) %# '

View File

@@ -0,0 +1,4 @@
_git_delete_branch ()
{
__gitcomp "$(__git_heads)"
}

View File

@@ -0,0 +1,9 @@
# Change file extensions recursively in current directory
#
# change-extension erb haml
function change-extension() {
foreach f (**/*.$1)
mv $f $f:r.$2
end
}

10
zsh/functions/envup Normal file
View File

@@ -0,0 +1,10 @@
# Load .env file into shell session for environment variables
function envup() {
if [ -f .env ]; then
export $(cat .env)
else
echo 'No .env file found' 1>&2
return 1
fi
}

9
zsh/functions/g Normal file
View File

@@ -0,0 +1,9 @@
# No arguments: `git status`
# With arguments: acts like `git`
g() {
if [[ $# -gt 0 ]]; then
git "$@"
else
git status
fi
}

5
zsh/functions/mcd Normal file
View File

@@ -0,0 +1,5 @@
# Make directory and change into it.
function mcd() {
mkdir -p "$1" && cd "$1";
}