mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-27 03:14:56 +01:00
Merge remote-tracking branch 'robbyrussell/master'
* robbyrussell/master: (75 commits) Update custom location command and fix code format Fix typo. Fix backwards logic in uninstaller once and for all Refactor for method in plugins/rake-fast/rake-fast.plugin.zsh Fix conditional in uninstall prompt Fix syntax error in confirmation prompt of uninstall.sh Fix syntax error in #4515 on certain shells Revert "Make install script safer" Fix "be" -> "b" typo in coffee plugin README.md. Make install script safer [FIX #4525]: Fix typo Fixd bug for pyenv plugin Fix install.sh/upgrade.sh for tput-less systems Check for git before trying to upgrade, as per #4504 Enable pyenv rehash Init pyenv virtualenvs too Add option '--port' to 'rails server' alias. Add an alias for upstream autoenv: actually source autoenv once located add alias to sort by version ...
This commit is contained in:
commit
049724070a
45 changed files with 521 additions and 275 deletions
|
|
@ -5,7 +5,7 @@ Oh My Zsh is an open source, community-driven framework for managing your [zsh](
|
||||||
|
|
||||||
__Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interact with your command prompt, you'll be able take advantage of the hundreds of bundled plugins and pretty themes. Strangers will come up to you in cafés and ask you, _"that is amazing. are you some sort of genius?"_ Finally, you'll begin to get the sort of attention that you always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often.
|
__Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interact with your command prompt, you'll be able take advantage of the hundreds of bundled plugins and pretty themes. Strangers will come up to you in cafés and ask you, _"that is amazing. are you some sort of genius?"_ Finally, you'll begin to get the sort of attention that you always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often.
|
||||||
|
|
||||||
To learn more, visit http://ohmyz.sh and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
|
To learn more, visit [ohmyz.sh](http://ohmyz.sh) and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
|
|
@ -25,11 +25,15 @@ Oh My Zsh is installed by running one of the following commands in your terminal
|
||||||
|
|
||||||
#### via curl
|
#### via curl
|
||||||
|
|
||||||
`sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"`
|
```shell
|
||||||
|
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
#### via wget
|
#### via wget
|
||||||
|
|
||||||
`sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"`
|
```shell
|
||||||
|
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
|
||||||
|
```
|
||||||
|
|
||||||
## Using Oh My Zsh
|
## Using Oh My Zsh
|
||||||
|
|
||||||
|
|
@ -100,7 +104,7 @@ The default location is `~/.oh-my-zsh` (hidden in your home directory)
|
||||||
If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
|
If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh
|
export ZSH="~/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Manual Installation
|
#### Manual Installation
|
||||||
|
|
|
||||||
86
lib/clipboard.zsh
Normal file
86
lib/clipboard.zsh
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
# System clipboard integration
|
||||||
|
#
|
||||||
|
# This file has support for doing system clipboard copy and paste operations
|
||||||
|
# from the command line in a generic cross-platform fashion.
|
||||||
|
#
|
||||||
|
# On OS X and Windows, the main system clipboard or "pasteboard" is used. On other
|
||||||
|
# Unix-like OSes, this considers the X Windows CLIPBOARD selection to be the
|
||||||
|
# "system clipboard", and the X Windows `xclip` command must be installed.
|
||||||
|
|
||||||
|
# clipcopy - Copy data to clipboard
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# <command> | clipcopy - copies stdin to clipboard
|
||||||
|
#
|
||||||
|
# clipcopy <file> - copies a file's contents to clipboard
|
||||||
|
#
|
||||||
|
function clipcopy() {
|
||||||
|
emulate -L zsh
|
||||||
|
local file=$1
|
||||||
|
if [[ $OSTYPE == darwin* ]]; then
|
||||||
|
if [[ -z $file ]]; then
|
||||||
|
pbcopy
|
||||||
|
else
|
||||||
|
cat $file | pbcopy
|
||||||
|
fi
|
||||||
|
elif [[ $OSTYPE == cygwin* ]]; then
|
||||||
|
if [[ -z $file ]]; then
|
||||||
|
cat > /dev/clipboard
|
||||||
|
else
|
||||||
|
cat $file > /dev/clipboard
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if which xclip &>/dev/null; then
|
||||||
|
if [[ -z $file ]]; then
|
||||||
|
xclip -in -selection clipboard
|
||||||
|
else
|
||||||
|
xclip -in -selection clipboard $file
|
||||||
|
fi
|
||||||
|
elif which xsel &>/dev/null; then
|
||||||
|
if [[ -z $file ]]; then
|
||||||
|
xsel --clipboard --input
|
||||||
|
else
|
||||||
|
cat "$file" | xsel --clipboard --input
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# clippaste - "Paste" data from clipboard to stdout
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# clippaste - writes clipboard's contents to stdout
|
||||||
|
#
|
||||||
|
# clippaste | <command> - pastes contents and pipes it to another process
|
||||||
|
#
|
||||||
|
# clippaste > <file> - paste contents to a file
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
#
|
||||||
|
# # Pipe to another process
|
||||||
|
# clippaste | grep foo
|
||||||
|
#
|
||||||
|
# # Paste to a file
|
||||||
|
# clippaste > file.txt
|
||||||
|
function clippaste() {
|
||||||
|
emulate -L zsh
|
||||||
|
if [[ $OSTYPE == darwin* ]]; then
|
||||||
|
pbpaste
|
||||||
|
elif [[ $OSTYPE == cygwin* ]]; then
|
||||||
|
cat /dev/clipboard
|
||||||
|
else
|
||||||
|
if which xclip &>/dev/null; then
|
||||||
|
xclip -out -selection clipboard
|
||||||
|
elif which xsel &>/dev/null; then
|
||||||
|
xsel --clipboard --output
|
||||||
|
else
|
||||||
|
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
@ -52,6 +52,9 @@
|
||||||
# * Consider whether to move default output file location to TMPDIR. More robust
|
# * Consider whether to move default output file location to TMPDIR. More robust
|
||||||
# but less user friendly.
|
# but less user friendly.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
autoload -Uz is-at-least
|
||||||
|
|
||||||
function omz_diagnostic_dump() {
|
function omz_diagnostic_dump() {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
|
|
@ -247,7 +250,7 @@ function _omz_diag_dump_one_big_text() {
|
||||||
|
|
||||||
function _omz_diag_dump_check_core_commands() {
|
function _omz_diag_dump_check_core_commands() {
|
||||||
builtin echo "Core command check:"
|
builtin echo "Core command check:"
|
||||||
local redefined name builtins externals
|
local redefined name builtins externals reserved_words
|
||||||
redefined=()
|
redefined=()
|
||||||
# All the zsh non-module builtin commands
|
# All the zsh non-module builtin commands
|
||||||
# These are taken from the zsh reference manual for 5.0.2
|
# These are taken from the zsh reference manual for 5.0.2
|
||||||
|
|
@ -255,17 +258,32 @@ function _omz_diag_dump_check_core_commands() {
|
||||||
# (For back-compatibility, if any of these are newish, they should be removed,
|
# (For back-compatibility, if any of these are newish, they should be removed,
|
||||||
# or at least made conditional on the version of the current running zsh.)
|
# or at least made conditional on the version of the current running zsh.)
|
||||||
# "history" is also excluded because OMZ is known to redefine that
|
# "history" is also excluded because OMZ is known to redefine that
|
||||||
|
reserved_words=( do done esac then elif else fi for case if while function
|
||||||
|
repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}'
|
||||||
|
)
|
||||||
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
|
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
|
||||||
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
||||||
comptry compvalues continue declare dirs disable disown echo echotc echoti emulate
|
comptry compvalues continue dirs disable disown echo echotc echoti emulate
|
||||||
enable eval exec exit export false fc fg float functions getln getopts hash
|
enable eval exec exit false fc fg functions getln getopts hash
|
||||||
integer jobs kill let limit local log logout noglob popd print printf
|
jobs kill let limit log logout noglob popd print printf
|
||||||
pushd pushln pwd r read readonly rehash return sched set setopt shift
|
pushd pushln pwd r read rehash return sched set setopt shift
|
||||||
source suspend test times trap true ttyctl type typeset ulimit umask unalias
|
source suspend test times trap true ttyctl type ulimit umask unalias
|
||||||
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
||||||
zle zmodload zparseopts zregexparse zstyle )
|
zle zmodload zparseopts zregexparse zstyle )
|
||||||
|
if is-at-least 5.1; then
|
||||||
|
reserved_word+=( declare export integer float local readonly typeset )
|
||||||
|
else
|
||||||
|
builtins+=( declare export integer float local readonly typeset )
|
||||||
|
fi
|
||||||
builtins_fatal=( builtin command local )
|
builtins_fatal=( builtin command local )
|
||||||
externals=( zsh )
|
externals=( zsh )
|
||||||
|
for name in $reserved_words; do
|
||||||
|
if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then
|
||||||
|
builtin echo "reserved word '$name' has been redefined"
|
||||||
|
builtin which $name
|
||||||
|
redefined+=$name
|
||||||
|
fi
|
||||||
|
done
|
||||||
for name in $builtins; do
|
for name in $builtins; do
|
||||||
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
||||||
builtin echo "builtin '$name' has been redefined"
|
builtin echo "builtin '$name' has been redefined"
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ git_remote_status() {
|
||||||
|
|
||||||
if [ $ahead -eq 0 ] && [ $behind -eq 0 ]
|
if [ $ahead -eq 0 ] && [ $behind -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
|
git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
|
||||||
elif [ $ahead -gt 0 ] && [ $behind -eq 0 ]
|
elif [ $ahead -gt 0 ] && [ $behind -eq 0 ]
|
||||||
then
|
then
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ if grep-flag-available --color=auto; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ignore VCS folders (if the necessary grep flags are available)
|
# ignore VCS folders (if the necessary grep flags are available)
|
||||||
VCS_FOLDERS="{.bzr,.cvs,.git,.hg,.svn}"
|
VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
|
||||||
|
|
||||||
if grep-flag-available --exclude-dir=.cvs; then
|
if grep-flag-available --exclude-dir=.cvs; then
|
||||||
GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
|
GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
|
||||||
|
|
|
||||||
27
lib/misc.zsh
27
lib/misc.zsh
|
|
@ -1,10 +1,19 @@
|
||||||
## Load smart urls if available
|
## Load smart urls if available
|
||||||
for d in $fpath; do
|
# bracketed-paste-magic is known buggy in zsh 5.1.1 (only), so skip it there; see #4434
|
||||||
if [[ -e "$d/url-quote-magic" ]]; then
|
autoload -Uz is-at-least
|
||||||
autoload -U url-quote-magic
|
if [[ $ZSH_VERSION != 5.1.1 ]]; then
|
||||||
zle -N self-insert url-quote-magic
|
for d in $fpath; do
|
||||||
fi
|
if [[ -e "$d/url-quote-magic" ]]; then
|
||||||
done
|
if is-at-least 5.1; then
|
||||||
|
autoload -Uz bracketed-paste-magic
|
||||||
|
zle -N bracketed-paste bracketed-paste-magic
|
||||||
|
fi
|
||||||
|
autoload -Uz url-quote-magic
|
||||||
|
zle -N self-insert url-quote-magic
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
## jobs
|
## jobs
|
||||||
setopt long_list_jobs
|
setopt long_list_jobs
|
||||||
|
|
@ -18,7 +27,11 @@ alias _='sudo'
|
||||||
alias please='sudo'
|
alias please='sudo'
|
||||||
|
|
||||||
## more intelligent acking for ubuntu users
|
## more intelligent acking for ubuntu users
|
||||||
alias afind='ack-grep -il'
|
if which ack-grep &> /dev/null; then
|
||||||
|
alias afind='ack-grep -il'
|
||||||
|
else
|
||||||
|
alias afind='ack -il'
|
||||||
|
fi
|
||||||
|
|
||||||
# only define LC_CTYPE if undefined
|
# only define LC_CTYPE if undefined
|
||||||
if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then
|
if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then
|
||||||
|
|
|
||||||
18
oh-my-zsh.sh
18
oh-my-zsh.sh
|
|
@ -11,6 +11,8 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
|
||||||
# Load all stock functions (from $fpath files) called below.
|
# Load all stock functions (from $fpath files) called below.
|
||||||
autoload -U compaudit compinit
|
autoload -U compaudit compinit
|
||||||
|
|
||||||
|
: ${ZSH_DISABLE_COMPFIX:=true}
|
||||||
|
|
||||||
# Set ZSH_CUSTOM to the path where your custom config files
|
# Set ZSH_CUSTOM to the path where your custom config files
|
||||||
# and plugins exists, or else we will use the default custom/
|
# and plugins exists, or else we will use the default custom/
|
||||||
if [[ -z "$ZSH_CUSTOM" ]]; then
|
if [[ -z "$ZSH_CUSTOM" ]]; then
|
||||||
|
|
@ -62,13 +64,17 @@ if [ -z "$ZSH_COMPDUMP" ]; then
|
||||||
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If completion insecurities exist, warn the user without enabling completions.
|
if [[ $ZSH_DISABLE_COMPFIX != true ]]; then
|
||||||
if ! compaudit &>/dev/null; then
|
# If completion insecurities exist, warn the user without enabling completions.
|
||||||
# This function resides in the "lib/compfix.zsh" script sourced above.
|
if ! compaudit &>/dev/null; then
|
||||||
handle_completion_insecurities
|
# This function resides in the "lib/compfix.zsh" script sourced above.
|
||||||
# Else, enable and cache completions to the desired file.
|
handle_completion_insecurities
|
||||||
|
# Else, enable and cache completions to the desired file.
|
||||||
|
else
|
||||||
|
compinit -d "${ZSH_COMPDUMP}"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
compinit -d "${ZSH_COMPDUMP}"
|
compinit -i -d "${ZSH_COMPDUMP}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Load all of the plugins that were defined in ~/.zshrc
|
# Load all of the plugins that were defined in ~/.zshrc
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
## atom
|
|
||||||
|
|
||||||
This plugin makes "at" a useful function for invoking the Atom Editor.
|
|
||||||
|
|
||||||
Originally by Github user [aforty](https://github.com/aforty) for OSX, modified to alias 'at' to 'atom' for Linux, since atom already works on the terminal for Linux, and calling 'at' in a non-OSX environment should still work.
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
|
|
||||||
* [Atom](https://atom.io/)
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
* If `at` command is called without an argument, launch Atom
|
|
||||||
|
|
||||||
* If `at` is passed a directory, open it in Atom
|
|
||||||
|
|
||||||
* If `at` is passed a file, open it in Atom
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
|
|
||||||
* Open the current dir in atom: `at .`
|
|
||||||
* Open another dir in atom: `at path/to/folder`
|
|
||||||
* Open a file: `at filename.extension`
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
# Gets OS Type
|
|
||||||
unamestr=$(uname -s)
|
|
||||||
|
|
||||||
# If OSX
|
|
||||||
if [[ "$unamestr" == 'Darwin' ]]; then
|
|
||||||
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
|
|
||||||
# If Linux
|
|
||||||
elif [[ "$unamestr" == 'Linux' ]]; then
|
|
||||||
# Alerts the user if 'atom' is not a found command.
|
|
||||||
type atom >/dev/null 2>&1 && alias at="atom" || { echo >&2 "You have enabled the atom oh-my-zsh plugin on Linux, but atom is not a recognized command. Please make sure you have it installed before using this plugin."; }
|
|
||||||
fi
|
|
||||||
|
|
@ -1,12 +1,26 @@
|
||||||
# Activates autoenv or reports its failure
|
# Activates autoenv or reports its failure
|
||||||
if ! source $HOME/.autoenv/activate.sh 2>/dev/null; then
|
() {
|
||||||
echo '-------- AUTOENV ---------'
|
if ! type autoenv_init >/dev/null; then
|
||||||
echo 'Could not find ~/.autoenv/activate.sh.'
|
for d (~/.autoenv /usr/local/opt/autoenv); do
|
||||||
echo 'Please check if autoenv is correctly installed.'
|
if [[ -e $d/activate.sh ]]; then
|
||||||
echo 'In the meantime the autoenv plugin is DISABLED.'
|
autoenv_dir=$d
|
||||||
echo '--------------------------'
|
break
|
||||||
return 1
|
fi
|
||||||
|
done
|
||||||
|
if [[ -z $autoenv_dir ]]; then
|
||||||
|
cat <<END >&2
|
||||||
|
-------- AUTOENV ---------
|
||||||
|
Could not locate autoenv installation.
|
||||||
|
Please check if autoenv is correctly installed.
|
||||||
|
In the meantime the autoenv plugin is DISABLED.
|
||||||
|
--------------------------
|
||||||
|
END
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
source $autoenv_dir/activate.sh
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
[[ $? != 0 ]] && return $?
|
||||||
|
|
||||||
# The use_env call below is a reusable command to activate/create a new Python
|
# The use_env call below is a reusable command to activate/create a new Python
|
||||||
# virtualenv, requiring only a single declarative line of code in your .env files.
|
# virtualenv, requiring only a single declarative line of code in your .env files.
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ _arguments -C \
|
||||||
_cap_tasks() {
|
_cap_tasks() {
|
||||||
if [[ -f config/deploy.rb || -f Capfile ]]; then
|
if [[ -f config/deploy.rb || -f Capfile ]]; then
|
||||||
if [[ ! -f .cap_tasks~ ]]; then
|
if [[ ! -f .cap_tasks~ ]]; then
|
||||||
shipit -v --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~
|
shipit --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OLD_IFS=$IFS
|
OLD_IFS=$IFS
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ _homebrew-installed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_chruby-from-homebrew-installed() {
|
_chruby-from-homebrew-installed() {
|
||||||
[ -r $(brew --prefix chruby)] &> /dev/null
|
[ -r $(brew --prefix chruby) ] &> /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
_ruby-build_installed() {
|
_ruby-build_installed() {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,28 @@
|
||||||
if [ ! -f $ZSH/plugins/chucknorris/fortunes/chucknorris.dat ]; then
|
# chucknorris: Chuck Norris fortunes
|
||||||
strfile $ZSH/plugins/chucknorris/fortunes/chucknorris $ZSH/plugins/chucknorris/fortunes/chucknorris.dat
|
|
||||||
|
# Automatically generate or update Chuck's compiled fortune data file
|
||||||
|
# $0 must be used outside a local function. This variable name is unlikly to collide.
|
||||||
|
CHUCKNORRIS_PLUGIN_DIR=${0:h}
|
||||||
|
|
||||||
|
() {
|
||||||
|
local DIR=$CHUCKNORRIS_PLUGIN_DIR/fortunes
|
||||||
|
if [[ ! -f $DIR/chucknorris.dat ]] || [[ $DIR/chucknorris.dat -ot $DIR/chucknorris ]]; then
|
||||||
|
# For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default
|
||||||
|
local strfile=strfile
|
||||||
|
if ! which strfile &>/dev/null && [[ -f /usr/sbin/strfile ]]; then
|
||||||
|
strfile=/usr/sbin/strfile
|
||||||
|
fi
|
||||||
|
if which $strfile &> /dev/null; then
|
||||||
|
$strfile $DIR/chucknorris $DIR/chucknorris.dat >/dev/null
|
||||||
|
else
|
||||||
|
echo "[oh-my-zsh] chucknorris depends on strfile, which is not installed" >&2
|
||||||
|
echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alias chuck="fortune -a $ZSH/plugins/chucknorris/fortunes"
|
# Aliases
|
||||||
|
alias chuck="fortune -a $DIR"
|
||||||
alias chuck_cow="chuck | cowthink"
|
alias chuck_cow="chuck | cowthink"
|
||||||
|
}
|
||||||
|
|
||||||
|
unset CHUCKNORRIS_PLUGIN_DIR
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,11 @@ Chuck Norris' blood type is AK+. Ass-Kicking Positive. It is compatible only wit
|
||||||
Chuck Norris is 1/8th Cherokee. This has nothing to do with ancestry, the man ate a fucking Indian.
|
Chuck Norris is 1/8th Cherokee. This has nothing to do with ancestry, the man ate a fucking Indian.
|
||||||
%
|
%
|
||||||
In fine print on the last page of the Guinness Book of World Records it notes that all world records are held by Chuck Norris, and those listed in the book are simply the closest anyone else has ever gotten.
|
In fine print on the last page of the Guinness Book of World Records it notes that all world records are held by Chuck Norris, and those listed in the book are simply the closest anyone else has ever gotten.
|
||||||
|
%
|
||||||
There is no chin behind Chuck Norris' beard. There is only another fist.
|
There is no chin behind Chuck Norris' beard. There is only another fist.
|
||||||
%
|
%
|
||||||
Chuck Norris does not teabag the ladies. He potato-sacks them.
|
Chuck Norris does not teabag the ladies. He potato-sacks them.
|
||||||
|
%
|
||||||
Pluto is actually an orbiting group of British soldiers from the American Revolution who entered space after the Chuck gave them a roundhouse kick to the face.
|
Pluto is actually an orbiting group of British soldiers from the American Revolution who entered space after the Chuck gave them a roundhouse kick to the face.
|
||||||
%
|
%
|
||||||
When Chuck Norris goes to donate blood, he declines the syringe, and instead requests a hand gun and a bucket.
|
When Chuck Norris goes to donate blood, he declines the syringe, and instead requests a hand gun and a bucket.
|
||||||
|
|
@ -127,6 +129,7 @@ Chuck Norris can drink an entire gallon of milk in thirty-seven seconds.
|
||||||
Little known medical fact: Chuck Norris invented the Caesarean section when he roundhouse-kicked his way out of his monther's womb.
|
Little known medical fact: Chuck Norris invented the Caesarean section when he roundhouse-kicked his way out of his monther's womb.
|
||||||
%
|
%
|
||||||
Chuck Norris doesn't bowl strikes, he just knocks down one pin and the other nine faint.
|
Chuck Norris doesn't bowl strikes, he just knocks down one pin and the other nine faint.
|
||||||
|
%
|
||||||
The show Survivor had the original premise of putting people on an island with Chuck Norris. There were no survivors, and nobody is brave enough to go to the island to retrieve the footage.
|
The show Survivor had the original premise of putting people on an island with Chuck Norris. There were no survivors, and nobody is brave enough to go to the island to retrieve the footage.
|
||||||
%
|
%
|
||||||
It takes Chuck Norris 20 minutes to watch 60 Minutes.
|
It takes Chuck Norris 20 minutes to watch 60 Minutes.
|
||||||
|
|
@ -281,6 +284,7 @@ In a recent survey it was discovered the 94% of American women lost their virgin
|
||||||
Chuck Norris invented a language that incorporates karate and roundhouse kicks. So next time Chuck Norris is kicking your ass, don't be offended or hurt, he may be just trying to tell you he likes your hat.
|
Chuck Norris invented a language that incorporates karate and roundhouse kicks. So next time Chuck Norris is kicking your ass, don't be offended or hurt, he may be just trying to tell you he likes your hat.
|
||||||
%
|
%
|
||||||
If at first you don't succeed, you're not Chuck Norris.
|
If at first you don't succeed, you're not Chuck Norris.
|
||||||
|
%
|
||||||
If Chuck Norris were a calendar, every month would be named Chucktober, and every day he'd kick your ass.
|
If Chuck Norris were a calendar, every month would be named Chucktober, and every day he'd kick your ass.
|
||||||
%
|
%
|
||||||
Fear is not the only emotion Chuck Norris can smell. He can also detect hope, as in "I hope I don't get a roundhouse kick from Chuck Norris."
|
Fear is not the only emotion Chuck Norris can smell. He can also detect hope, as in "I hope I don't get a roundhouse kick from Chuck Norris."
|
||||||
|
|
@ -349,7 +353,7 @@ As President Roosevelt said: "We have nothing to fear but fear itself. And Chuck
|
||||||
%
|
%
|
||||||
Chuck Norris just says "no" to drugs. If he said "yes", it would collapse Colombia's infrastructure.
|
Chuck Norris just says "no" to drugs. If he said "yes", it would collapse Colombia's infrastructure.
|
||||||
%
|
%
|
||||||
Since 1940, the year Chuck Norris was born, roundhouse-kick related deaths have increased 13,000 percent.
|
Since 1940, the year Chuck Norris was born, roundhouse-kick related deaths have increased 13,000 percent.?
|
||||||
%
|
%
|
||||||
Crime does not pay - unless you are an undertaker following Walker, Texas Ranger, on a routine patrol.
|
Crime does not pay - unless you are an undertaker following Walker, Texas Ranger, on a routine patrol.
|
||||||
%
|
%
|
||||||
|
|
@ -497,7 +501,8 @@ When Chuck Norris works out on the Total Gym, the Total Gym feels like it's been
|
||||||
%
|
%
|
||||||
Chuck Norris can skeletize a cow in two minutes.
|
Chuck Norris can skeletize a cow in two minutes.
|
||||||
%
|
%
|
||||||
The only sure things are Death and Taxes?and when Chuck Norris goes to work for the IRS, they'll be the same thing.
|
The only sure things are Death and Taxes, and when Chuck Norris goes to work for the IRS, they'll be the same thing.
|
||||||
|
%
|
||||||
Chuck Norris' first job was as a paperboy. There were no survivors.
|
Chuck Norris' first job was as a paperboy. There were no survivors.
|
||||||
%
|
%
|
||||||
With the rising cost of gasoline, Chuck Norris is beginning to worry about his drinking habit.
|
With the rising cost of gasoline, Chuck Norris is beginning to worry about his drinking habit.
|
||||||
|
|
@ -527,8 +532,6 @@ Chuck Norris uses 8'x10' sheets of plywood as toilet paper.
|
||||||
Noah was the only man notified before Chuck Norris relieved himself in the Atlantic Ocean.
|
Noah was the only man notified before Chuck Norris relieved himself in the Atlantic Ocean.
|
||||||
%
|
%
|
||||||
Chuck Norris once invited all of the other badasses from TV to duke it out in order to see who was the supreme badass. Only two showed up-- Jack Bauer and MacGyver.
|
Chuck Norris once invited all of the other badasses from TV to duke it out in order to see who was the supreme badass. Only two showed up-- Jack Bauer and MacGyver.
|
||||||
%
|
|
||||||
|
|
||||||
%
|
%
|
||||||
MacGyver immediately tried to make a bomb out of some Q-Tips and Gatorade, but Chuck Norris roundhouse-kicked him in the solar plexus. MacGyver promptly threw up his own heart.
|
MacGyver immediately tried to make a bomb out of some Q-Tips and Gatorade, but Chuck Norris roundhouse-kicked him in the solar plexus. MacGyver promptly threw up his own heart.
|
||||||
%
|
%
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ Preview the compiled result of your coffeescript with `cf "code"` as per the
|
||||||
following:
|
following:
|
||||||
|
|
||||||
```zsh
|
```zsh
|
||||||
$ cf 'if a then be else c'
|
$ cf 'if a then b else c'
|
||||||
if (a) {
|
if (a) {
|
||||||
b;
|
b;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ cf () {
|
||||||
}
|
}
|
||||||
# compile & copy to clipboard
|
# compile & copy to clipboard
|
||||||
cfc () {
|
cfc () {
|
||||||
cf "$1" | pbcopy
|
cf "$1" | clipcopy
|
||||||
}
|
}
|
||||||
|
|
||||||
# compile from pasteboard & print
|
# compile from clipboard & print
|
||||||
alias cfp='coffeeMe "$(pbpaste)"'
|
alias cfp='cf "$(clippaste)"'
|
||||||
|
|
||||||
# compile from pasteboard and copy to clipboard
|
# compile from clipboard and copy to clipboard
|
||||||
alias cfpc='cfp | pbcopy'
|
alias cfpc='cfp | clipcopy'
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
# Copies the pathname of the current directory to the system or X Windows clipboard
|
||||||
function copydir {
|
function copydir {
|
||||||
pwd | tr -d "\r\n" | pbcopy
|
emulate -L zsh
|
||||||
}
|
print -n $PWD | clipcopy
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
|
# Copies the contents of a given file to the system or X Windows clipboard
|
||||||
|
#
|
||||||
|
# copyfile <file>
|
||||||
function copyfile {
|
function copyfile {
|
||||||
[[ "$#" != 1 ]] && return 1
|
emulate -L zsh
|
||||||
local file_to_copy=$1
|
clipcopy $1
|
||||||
cat $file_to_copy | pbcopy
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
encode64(){ echo -n $1 | base64 }
|
encode64(){ printf '%s' $1 | base64 }
|
||||||
decode64(){ echo -n $1 | base64 --decode }
|
decode64(){ printf '%s' $1 | base64 --decode }
|
||||||
alias e64=encode64
|
alias e64=encode64
|
||||||
alias d64=decode64
|
alias d64=decode64
|
||||||
|
|
|
||||||
3
plugins/fedora/README.md
Normal file
3
plugins/fedora/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is a plugin based on yum plugin, but using dnf as main frontend
|
||||||
|
(from Fedora 22 onwards, yum is deprecated in favor of dnf).
|
||||||
|
|
||||||
16
plugins/fedora/fedora.plugin.zsh
Normal file
16
plugins/fedora/fedora.plugin.zsh
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
## Aliases
|
||||||
|
|
||||||
|
alias dnfs="dnf search" # search package
|
||||||
|
alias dnfp="dnf info" # show package info
|
||||||
|
alias dnfl="dnf list" # list packages
|
||||||
|
alias dnfgl="dnf grouplist" # list package groups
|
||||||
|
alias dnfli="dnf list installed" # print all installed packages
|
||||||
|
alias dnfmc="dnf makecache" # rebuilds the dnf package list
|
||||||
|
|
||||||
|
alias dnfu="sudo dnf upgrade" # upgrade packages
|
||||||
|
alias dnfi="sudo dnf install" # install package
|
||||||
|
alias dnfgi="sudo dnf groupinstall" # install package group
|
||||||
|
alias dnfr="sudo dnf remove" # remove package
|
||||||
|
alias dnfgr="sudo dnf groupremove" # remove pagage group
|
||||||
|
alias dnfrl="sudo dnf remove --remove-leaves" # remove package and leaves
|
||||||
|
alias dnfc="sudo dnf clean all" # clean cache
|
||||||
11
plugins/git-extras/README.md
Normal file
11
plugins/git-extras/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# git-extras
|
||||||
|
|
||||||
|
This plugin provides completion definitions for some of the commands defined by [git-extras](http://github.com/tj/git-extras).
|
||||||
|
|
||||||
|
## Setup notes
|
||||||
|
|
||||||
|
The completions work by augmenting the `_git` completion provided by `zsh`. This only works with the `zsh`-provided `_git`, not the `_git` provided by `git` itself. If you have both `zsh` and `git` installed, you need to make sure that the `zsh`-provided `_git` takes precedence.
|
||||||
|
|
||||||
|
### OS X Homebrew Setup
|
||||||
|
|
||||||
|
On OS X with Homebrew, you need to install `git` with `brew install git --without-completions`. Otherwise, `git`'s `_git` will take precedence, and you won't see the completions for `git-extras` commands.
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
#compdef git
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Description
|
# Description
|
||||||
# -----------
|
# -----------
|
||||||
#
|
#
|
||||||
# Completion script for git-extras (http://github.com/tj/git-extras).
|
# Completion script for git-extras (http://github.com/tj/git-extras).
|
||||||
#
|
#
|
||||||
|
# This depends on and reueses some of the internals of the _git completion
|
||||||
|
# function that ships with zsh itself. It will not work with the _git that ships
|
||||||
|
# with git.
|
||||||
|
#
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Authors
|
# Authors
|
||||||
# -------
|
# -------
|
||||||
|
|
@ -22,16 +25,18 @@
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
__git_command_successful () {
|
# Internal functions
|
||||||
if (( ${#pipestatus:#0} > 0 )); then
|
# These are a lot like their __git_* equivalents inside _git
|
||||||
_message 'not a git repository'
|
|
||||||
return 1
|
__gitex_command_successful () {
|
||||||
fi
|
if (( ${#*:#0} > 0 )); then
|
||||||
return 0
|
_message 'not a git repository'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitex_commits() {
|
||||||
__git_commits() {
|
|
||||||
declare -A commits
|
declare -A commits
|
||||||
git log --oneline -15 | sed 's/\([[:alnum:]]\{7\}\) /\1:/' | while read commit
|
git log --oneline -15 | sed 's/\([[:alnum:]]\{7\}\) /\1:/' | while read commit
|
||||||
do
|
do
|
||||||
|
|
@ -42,7 +47,7 @@ __git_commits() {
|
||||||
_describe -t commits commit commits && ret=0
|
_describe -t commits commit commits && ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_tag_names() {
|
__gitex_tag_names() {
|
||||||
local expl
|
local expl
|
||||||
declare -a tag_names
|
declare -a tag_names
|
||||||
tag_names=(${${(f)"$(_call_program tags git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/})
|
tag_names=(${${(f)"$(_call_program tags git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/})
|
||||||
|
|
@ -51,7 +56,7 @@ __git_tag_names() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
__git_branch_names() {
|
__gitex_branch_names() {
|
||||||
local expl
|
local expl
|
||||||
declare -a branch_names
|
declare -a branch_names
|
||||||
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/})
|
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/})
|
||||||
|
|
@ -59,7 +64,7 @@ __git_branch_names() {
|
||||||
_wanted branch-names expl branch-name compadd $* - $branch_names
|
_wanted branch-names expl branch-name compadd $* - $branch_names
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_specific_branch_names() {
|
__gitex_specific_branch_names() {
|
||||||
local expl
|
local expl
|
||||||
declare -a branch_names
|
declare -a branch_names
|
||||||
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/"$1" 2>/dev/null)"}#refs/heads/$1/})
|
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/"$1" 2>/dev/null)"}#refs/heads/$1/})
|
||||||
|
|
@ -67,32 +72,28 @@ __git_specific_branch_names() {
|
||||||
_wanted branch-names expl branch-name compadd $* - $branch_names
|
_wanted branch-names expl branch-name compadd $* - $branch_names
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitex_feature_branch_names() {
|
||||||
__git_feature_branch_names() {
|
__gitex_specific_branch_names 'feature'
|
||||||
__git_specific_branch_names 'feature'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitex_refactor_branch_names() {
|
||||||
__git_refactor_branch_names() {
|
__gitex_specific_branch_names 'refactor'
|
||||||
__git_specific_branch_names 'refactor'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitex_bug_branch_names() {
|
||||||
__git_bug_branch_names() {
|
__gitex_specific_branch_names 'bug'
|
||||||
__git_specific_branch_names 'bug'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitex_submodule_names() {
|
||||||
__git_submodule_names() {
|
|
||||||
local expl
|
local expl
|
||||||
declare -a submodule_names
|
declare -a submodule_names
|
||||||
submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"})
|
submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) # '
|
||||||
__git_command_successful || return
|
__git_command_successful || return
|
||||||
_wanted submodule-names expl submodule-name compadd $* - $submodule_names
|
_wanted submodule-names expl submodule-name compadd $* - $submodule_names
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
__git_author_names() {
|
__gitex_author_names() {
|
||||||
local expl
|
local expl
|
||||||
declare -a author_names
|
declare -a author_names
|
||||||
author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"})
|
author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"})
|
||||||
|
|
@ -123,7 +124,7 @@ _git-bug() {
|
||||||
case $line[1] in
|
case $line[1] in
|
||||||
(finish)
|
(finish)
|
||||||
_arguments -C \
|
_arguments -C \
|
||||||
':branch-name:__git_bug_branch_names'
|
':branch-name:__gitex_bug_branch_names'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
|
@ -139,7 +140,7 @@ _git-changelog() {
|
||||||
|
|
||||||
_git-contrib() {
|
_git-contrib() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':author:__git_author_names'
|
':author:__gitex_author_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -151,19 +152,19 @@ _git-count() {
|
||||||
|
|
||||||
_git-delete-branch() {
|
_git-delete-branch() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':branch-name:__git_branch_names'
|
':branch-name:__gitex_branch_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_git-delete-submodule() {
|
_git-delete-submodule() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':submodule-name:__git_submodule_names'
|
':submodule-name:__gitex_submodule_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_git-delete-tag() {
|
_git-delete-tag() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':tag-name:__git_tag_names'
|
':tag-name:__gitex_tag_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -172,6 +173,7 @@ _git-effort() {
|
||||||
'--above[ignore file with less than x commits]'
|
'--above[ignore file with less than x commits]'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_git-extras() {
|
_git-extras() {
|
||||||
local curcontext=$curcontext state line ret=1
|
local curcontext=$curcontext state line ret=1
|
||||||
declare -A opt_args
|
declare -A opt_args
|
||||||
|
|
@ -216,7 +218,7 @@ _git-feature() {
|
||||||
case $line[1] in
|
case $line[1] in
|
||||||
(finish)
|
(finish)
|
||||||
_arguments -C \
|
_arguments -C \
|
||||||
':branch-name:__git_feature_branch_names'
|
':branch-name:__gitex_feature_branch_names'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
|
@ -225,8 +227,8 @@ _git-feature() {
|
||||||
|
|
||||||
_git-graft() {
|
_git-graft() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':src-branch-name:__git_branch_names' \
|
':src-branch-name:__gitex_branch_names' \
|
||||||
':dest-branch-name:__git_branch_names'
|
':dest-branch-name:__gitex_branch_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -236,12 +238,14 @@ _git-ignore() {
|
||||||
'(--global -g)'{--global,-g}'[show global gitignore]'
|
'(--global -g)'{--global,-g}'[show global gitignore]'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_git-missing() {
|
_git-missing() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':first-branch-name:__git_branch_names' \
|
':first-branch-name:__gitex_branch_names' \
|
||||||
':second-branch-name:__git_branch_names'
|
':second-branch-name:__gitex_branch_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_git-refactor() {
|
_git-refactor() {
|
||||||
local curcontext=$curcontext state line ret=1
|
local curcontext=$curcontext state line ret=1
|
||||||
declare -A opt_args
|
declare -A opt_args
|
||||||
|
|
@ -263,7 +267,7 @@ _git-refactor() {
|
||||||
case $line[1] in
|
case $line[1] in
|
||||||
(finish)
|
(finish)
|
||||||
_arguments -C \
|
_arguments -C \
|
||||||
':branch-name:__git_refactor_branch_names'
|
':branch-name:__gitex_refactor_branch_names'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
|
@ -272,12 +276,12 @@ _git-refactor() {
|
||||||
|
|
||||||
_git-squash() {
|
_git-squash() {
|
||||||
_arguments \
|
_arguments \
|
||||||
':branch-name:__git_branch_names'
|
':branch-name:__gitex_branch_names'
|
||||||
}
|
}
|
||||||
|
|
||||||
_git-summary() {
|
_git-summary() {
|
||||||
_arguments '--line[summarize with lines other than commits]'
|
_arguments '--line[summarize with lines rather than commits]'
|
||||||
__git_commits
|
__gitex_commits
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -298,7 +302,7 @@ zstyle ':completion:*:*:git:*' user-commands \
|
||||||
count:'count commits' \
|
count:'count commits' \
|
||||||
create-branch:'create local and remote branch' \
|
create-branch:'create local and remote branch' \
|
||||||
delete-branch:'delete local and remote branch' \
|
delete-branch:'delete local and remote branch' \
|
||||||
delete-merged-brancees:'delete merged branches'\
|
delete-merged-branches:'delete merged branches'\
|
||||||
delete-submodule:'delete submodule' \
|
delete-submodule:'delete submodule' \
|
||||||
delete-tag:'delete local and remote tag' \
|
delete-tag:'delete local and remote tag' \
|
||||||
effort:'display effort statistics' \
|
effort:'display effort statistics' \
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,13 @@
|
||||||
# c. Or, use this file as an oh-my-zsh plugin.
|
# c. Or, use this file as an oh-my-zsh plugin.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
alias ghf='git hf'
|
||||||
|
alias ghff='git hf feature'
|
||||||
|
alias ghfr='git hf release'
|
||||||
|
alias ghfh='git hf hotfix'
|
||||||
|
alias ghfs='git hf support'
|
||||||
|
alias ghfu='git hf update'
|
||||||
|
|
||||||
_git-hf ()
|
_git-hf ()
|
||||||
{
|
{
|
||||||
local curcontext="$curcontext" state line
|
local curcontext="$curcontext" state line
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ alias gcs='git commit -S'
|
||||||
|
|
||||||
alias gd='git diff'
|
alias gd='git diff'
|
||||||
alias gdca='git diff --cached'
|
alias gdca='git diff --cached'
|
||||||
|
alias gdct='git describe --tags `git rev-list --tags --max-count=1`'
|
||||||
alias gdt='git diff-tree --no-commit-id --name-only -r'
|
alias gdt='git diff-tree --no-commit-id --name-only -r'
|
||||||
gdv() { git diff -w "$@" | view - }
|
gdv() { git diff -w "$@" | view - }
|
||||||
compdef _git gdv=git-diff
|
compdef _git gdv=git-diff
|
||||||
|
|
@ -211,11 +212,13 @@ alias gsts='git stash show --text'
|
||||||
alias gsu='git submodule update'
|
alias gsu='git submodule update'
|
||||||
|
|
||||||
alias gts='git tag -s'
|
alias gts='git tag -s'
|
||||||
|
alias gtv='git tag | sort -V'
|
||||||
|
|
||||||
alias gunignore='git update-index --no-assume-unchanged'
|
alias gunignore='git update-index --no-assume-unchanged'
|
||||||
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
||||||
alias gup='git pull --rebase'
|
alias gup='git pull --rebase'
|
||||||
alias gupv='git pull --rebase -v'
|
alias gupv='git pull --rebase -v'
|
||||||
|
alias glum='git pull upstream master'
|
||||||
|
|
||||||
alias gvt='git verify-tag'
|
alias gvt='git verify-tag'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!zsh
|
#!zsh
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# A descriptive listing of core Gradle commands
|
# A descriptive listing of core Gradle commands
|
||||||
############################################################################
|
############################################################################
|
||||||
function _gradle_core_commands() {
|
function _gradle_core_commands() {
|
||||||
local ret=1 state
|
local ret=1 state
|
||||||
|
|
@ -32,14 +32,22 @@ function _gradle_arguments() {
|
||||||
'--stop[Stop the Gradle daemon]' \
|
'--stop[Stop the Gradle daemon]' \
|
||||||
'--daemon[Use the Gradle daemon]' \
|
'--daemon[Use the Gradle daemon]' \
|
||||||
'--no-daemon[Do not use the Gradle daemon]' \
|
'--no-daemon[Do not use the Gradle daemon]' \
|
||||||
'--no-opt[Do not perform any task optimization]' \
|
'--rerun-task [Specifies that any task optimization is ignored.]' \
|
||||||
'-i[Log at the info level]' \
|
'-i[Log at the info level]' \
|
||||||
'-m[Dry run]' \
|
'-m[Dry run]' \
|
||||||
'-P[Set a project property]' \
|
'-P[Set a project property]' \
|
||||||
|
'-p[Specifies the start directory]' \
|
||||||
'--profile[Profile the build time]' \
|
'--profile[Profile the build time]' \
|
||||||
'-q[Log at the quiet level (only show errors)]' \
|
'-q[Log at the quiet level (only show errors)]' \
|
||||||
'-v[Print the Gradle version info]' \
|
'-v[Print the Gradle version info]' \
|
||||||
'-x[Specify a task to be excluded]' \
|
'-x[Specify a task to be excluded]' \
|
||||||
|
'-b[Specifies the build file.]' \
|
||||||
|
'-c[Specifies the settings file.]' \
|
||||||
|
'--continue[Continues task execution after a task failure.]' \
|
||||||
|
'-g[Specifies the Gradle user home directory.]' \
|
||||||
|
'-I[Specifies an initialization script.]' \
|
||||||
|
'--refresh-dependencies[Refresh the state of dependencies.]' \
|
||||||
|
'-u[Don''t search in parent directories for a settings.gradle file.]' \
|
||||||
'*::command:->command' \
|
'*::command:->command' \
|
||||||
&& return 0
|
&& return 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,11 @@
|
||||||
# Grabs all available tasks from the `gulpfile.js`
|
# Grabs all available tasks from the `gulpfile.js`
|
||||||
# in the current directory.
|
# in the current directory.
|
||||||
#
|
#
|
||||||
function $$gulp_completion() {
|
function $$gulp_completion {
|
||||||
compls=$(grep -Eo "gulp.task\(('(([a-zA-Z0-9]|-)*)',)" gulpfile.js 2>/dev/null | grep -Eo "'(([a-zA-Z0-9]|-)*)'" | sed s/"'"//g | sort)
|
compls="$(grep -Eo "gulp.task\((['\"](([a-zA-Z0-9]|-)*)['\"],)" gulpfile.js 2>/dev/null | grep -Eo "['\"](([a-zA-Z0-9]|-)*)['\"]" | sed s/"['\"]"//g | sort)"
|
||||||
|
|
||||||
completions=(${=compls})
|
completions=(${=compls})
|
||||||
compadd -- $completions
|
compadd -- $completions
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef $$gulp_completion gulp
|
compdef $$gulp_completion gulp
|
||||||
|
|
|
||||||
|
|
@ -19,14 +19,19 @@ Nmap options are:
|
||||||
|
|
||||||
## Aliases explained
|
## Aliases explained
|
||||||
|
|
||||||
* nmap_open_ports - scan for open ports on target
|
* nmap_open_ports - Scan for open ports on target
|
||||||
* nmap_list_interfaces - list all network interfaces on host where the command runs
|
* nmap_list_interfaces - List all network interfaces on host where the command runs
|
||||||
* nmap_slow - slow scan that avoids to spam the targets logs
|
* nmap_slow - Slow scan that avoids to spam the targets logs
|
||||||
* nmap_fin - scan to see if hosts are up with TCP FIN scan
|
* nmap_fin - Scan to see if hosts are up with TCP FIN scan
|
||||||
* nmap_full - aggressive full scan that scans all ports, tries to determine OS and service versions
|
* nmap_full - Aggressive full scan that scans all ports, tries to determine OS and service versions
|
||||||
* nmap_check_for_firewall - TCP ACK scan to check for firewall existence
|
* nmap_check_for_firewall - TCP ACK scan to check for firewall existence
|
||||||
* nmap_ping_through_firewall - Host discovery with SYN and ACK probes instead of just pings to avoid firewall
|
* nmap_ping_through_firewall - Host discovery with SYN and ACK probes instead of just pings to avoid firewall
|
||||||
restrictions
|
restrictions
|
||||||
* nmap_fast - Fast scan of the top 300 popular ports
|
* nmap_fast - Fast scan of the top 300 popular ports
|
||||||
* nmap_detect_versions - detects versions of services and OS, runs on all ports
|
* nmap_detect_versions - Detects versions of services and OS, runs on all ports
|
||||||
* nmap_check_for_vulns - uses vulscan script to check target services for vulnerabilities
|
* nmap_check_for_vulns - Uses vulscan script to check target services for vulnerabilities
|
||||||
|
* nmap_full_udp - Same as full but via UDP
|
||||||
|
* nmap_traceroute - Try to traceroute using the most common ports
|
||||||
|
* nmap_full_with_scripts - Same as nmap_full but also runs all the scripts
|
||||||
|
* nmap_web_safe_osscan - Little "safer" scan for OS version as connecting to only HTTP and HTTPS ports doesn't look so attacking.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,11 @@ alias nmap_fin="nmap -sF -v"
|
||||||
alias nmap_full="nmap -sS -T4 -PE -PP -PS80,443 -PY -g 53 -A -p1-65535 -v"
|
alias nmap_full="nmap -sS -T4 -PE -PP -PS80,443 -PY -g 53 -A -p1-65535 -v"
|
||||||
alias nmap_check_for_firewall="nmap -sA -p1-65535 -v -T4"
|
alias nmap_check_for_firewall="nmap -sA -p1-65535 -v -T4"
|
||||||
alias nmap_ping_through_firewall="nmap -PS -PA"
|
alias nmap_ping_through_firewall="nmap -PS -PA"
|
||||||
alias nmap_fast="nmap -F -T5 --top-ports 300"
|
alias nmap_fast="nmap -F -T5 --version-light --top-ports 300"
|
||||||
alias nmap_detect_versions="nmap -sV -p1-65535 -O --osscan-guess -T4 -Pn"
|
alias nmap_detect_versions="nmap -sV -p1-65535 -O --osscan-guess -T4 -Pn"
|
||||||
alias nmap_check_for_vulns="nmap --script=vulscan"
|
alias nmap_check_for_vulns="nmap --script=vulscan"
|
||||||
|
alias nmap_full_udp="nmap -sS -sU -T4 -A -v -PE -PS22,25,80 -PA21,23,80,443,3389 "
|
||||||
|
alias nmap_traceroute="nmap -sP -PE -PS22,25,80 -PA21,23,80,3389 -PU -PO --traceroute "
|
||||||
|
alias nmap_full_with_scripts="sudo nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all "
|
||||||
|
alias nmap_web_safe_osscan="sudo nmap -p 80,443 -O -v --osscan-guess --fuzzy "
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
eval "$(npm completion 2>/dev/null)"
|
eval "$(npm completion 2>/dev/null)"
|
||||||
|
|
||||||
|
# Install dependencies globally
|
||||||
|
alias npmg="npm i -g "
|
||||||
|
|
||||||
# npm package names are lowercase
|
# npm package names are lowercase
|
||||||
# - https://twitter.com/substack/status/23122603153150361
|
|
||||||
# Thus, we've used camelCase for the following aliases:
|
# Thus, we've used camelCase for the following aliases:
|
||||||
|
|
||||||
# Install and save to dependencies in your package.json
|
# Install and save to dependencies in your package.json
|
||||||
|
|
@ -12,6 +13,7 @@ alias npmS="npm i -S "
|
||||||
# Install and save to dev-dependencies in your package.json
|
# Install and save to dev-dependencies in your package.json
|
||||||
# npmd is used by https://github.com/dominictarr/npmd
|
# npmd is used by https://github.com/dominictarr/npmd
|
||||||
alias npmD="npm i -D "
|
alias npmD="npm i -D "
|
||||||
|
|
||||||
# Execute command from node_modules folder based on current directory
|
# Execute command from node_modules folder based on current directory
|
||||||
# i.e npmE gulp
|
# i.e npmE gulp
|
||||||
alias npmE='PATH="$(npm bin)":"$PATH"'
|
alias npmE='PATH="$(npm bin)":"$PATH"'
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,17 @@ function itunes() {
|
||||||
vol)
|
vol)
|
||||||
opt="set sound volume to $1" #$1 Due to the shift
|
opt="set sound volume to $1" #$1 Due to the shift
|
||||||
;;
|
;;
|
||||||
|
playing|status)
|
||||||
|
local state=`osascript -e 'tell application "iTunes" to player state as string'`
|
||||||
|
if [[ "$state" = "playing" ]]; then
|
||||||
|
currenttrack=`osascript -e 'tell application "iTunes" to name of current track as string'`
|
||||||
|
currentartist=`osascript -e 'tell application "iTunes" to artist of current track as string'`
|
||||||
|
echo -E "Listening to $fg[yellow]$currenttrack$reset_color by $fg[yellow]$currentartist$reset_color";
|
||||||
|
else
|
||||||
|
echo "iTunes is" $state;
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
shuf|shuff|shuffle)
|
shuf|shuff|shuffle)
|
||||||
# The shuffle property of current playlist can't be changed in iTunes 12,
|
# The shuffle property of current playlist can't be changed in iTunes 12,
|
||||||
# so this workaround uses AppleScript to simulate user input instead.
|
# so this workaround uses AppleScript to simulate user input instead.
|
||||||
|
|
@ -205,6 +216,7 @@ EOF
|
||||||
echo "\tnext|previous\tplay next or previous track"
|
echo "\tnext|previous\tplay next or previous track"
|
||||||
echo "\tshuf|shuffle [on|off|toggle]\tSet shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer."
|
echo "\tshuf|shuffle [on|off|toggle]\tSet shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer."
|
||||||
echo "\tvol\tSet the volume, takes an argument from 0 to 100"
|
echo "\tvol\tSet the volume, takes an argument from 0 to 100"
|
||||||
|
echo "\tplaying|status\tShow what song is currently playing in iTunes."
|
||||||
echo "\thelp\tshow this message and exit"
|
echo "\thelp\tshow this message and exit"
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,11 @@ for pyenvdir in "${pyenvdirs[@]}" ; do
|
||||||
FOUND_PYENV=1
|
FOUND_PYENV=1
|
||||||
export PYENV_ROOT=$pyenvdir
|
export PYENV_ROOT=$pyenvdir
|
||||||
export PATH=${pyenvdir}/bin:$PATH
|
export PATH=${pyenvdir}/bin:$PATH
|
||||||
eval "$(pyenv init --no-rehash - zsh)"
|
eval "$(pyenv init - zsh)"
|
||||||
|
|
||||||
|
if pyenv commands | command grep -q virtualenv-init; then
|
||||||
|
eval "$(pyenv virtualenv-init - zsh)"
|
||||||
|
fi
|
||||||
|
|
||||||
function pyenv_prompt_info() {
|
function pyenv_prompt_info() {
|
||||||
echo "$(pyenv version-name)"
|
echo "$(pyenv version-name)"
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ alias rp='rails plugin'
|
||||||
alias ru='rails runner'
|
alias ru='rails runner'
|
||||||
alias rs='rails server'
|
alias rs='rails server'
|
||||||
alias rsd='rails server --debugger'
|
alias rsd='rails server --debugger'
|
||||||
|
alias rsp='rails server --port'
|
||||||
|
|
||||||
# Rake aliases
|
# Rake aliases
|
||||||
alias rdm='rake db:migrate'
|
alias rdm='rake db:migrate'
|
||||||
|
|
@ -59,7 +60,7 @@ alias rn='rake notes'
|
||||||
alias rr='rake routes'
|
alias rr='rake routes'
|
||||||
alias rrg='rake routes | grep'
|
alias rrg='rake routes | grep'
|
||||||
alias rt='rake test'
|
alias rt='rake test'
|
||||||
|
alias rmd='rake middleware'
|
||||||
|
|
||||||
# legacy stuff
|
# legacy stuff
|
||||||
alias sstat='thin --stats "/thin/stats" start'
|
alias sstat='thin --stats "/thin/stats" start'
|
||||||
|
|
|
||||||
|
|
@ -8,17 +8,7 @@ _rake_refresh () {
|
||||||
}
|
}
|
||||||
|
|
||||||
_rake_does_task_list_need_generating () {
|
_rake_does_task_list_need_generating () {
|
||||||
if [ ! -f .rake_tasks ]; then return 0;
|
[[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]]
|
||||||
else
|
|
||||||
if [[ "$OSTYPE" = 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_generate () {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
# Sublime Text 2 Aliases
|
|
||||||
|
|
||||||
if [[ $('uname') == 'Linux' ]]; then
|
if [[ $('uname') == 'Linux' ]]; then
|
||||||
local _sublime_linux_paths > /dev/null 2>&1
|
local _sublime_linux_paths > /dev/null 2>&1
|
||||||
_sublime_linux_paths=(
|
_sublime_linux_paths=(
|
||||||
|
|
@ -33,7 +31,6 @@ elif [[ "$OSTYPE" = darwin* ]]; then
|
||||||
"$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
"$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
||||||
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
||||||
)
|
)
|
||||||
|
|
||||||
for _sublime_path in $_sublime_darwin_paths; do
|
for _sublime_path in $_sublime_darwin_paths; do
|
||||||
if [[ -a $_sublime_path ]]; then
|
if [[ -a $_sublime_path ]]; then
|
||||||
subl () { "$_sublime_path" $* }
|
subl () { "$_sublime_path" $* }
|
||||||
|
|
@ -41,6 +38,21 @@ elif [[ "$OSTYPE" = darwin* ]]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
elif [[ "$OSTYPE" = 'cygwin' ]]; then
|
||||||
|
local _sublime_cygwin_paths > /dev/null 2>&1
|
||||||
|
_sublime_cygwin_paths=(
|
||||||
|
"$(cygpath $ProgramW6432/Sublime\ Text\ 2)/sublime_text.exe"
|
||||||
|
"$(cygpath $ProgramW6432/Sublime\ Text\ 3)/sublime_text.exe"
|
||||||
|
)
|
||||||
|
for _sublime_path in $_sublime_cygwin_paths; do
|
||||||
|
if [[ -a $_sublime_path ]]; then
|
||||||
|
subl () { "$_sublime_path" $* }
|
||||||
|
alias st=subl
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alias stt='st .'
|
alias stt='st .'
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,7 @@ sudo_commands=(
|
||||||
|
|
||||||
for c in $user_commands; do; alias sc-$c="systemctl $c"; done
|
for c in $user_commands; do; alias sc-$c="systemctl $c"; done
|
||||||
for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
|
for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
|
||||||
|
|
||||||
|
alias sc-enable-now="sc-enable --now"
|
||||||
|
alias sc-disable-now="sc-disable --now"
|
||||||
|
alias sc-mask-now="sc-mask --now"
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,3 @@
|
||||||
alias et='mate .'
|
|
||||||
alias ett='mate Gemfile app config features lib db public spec test Rakefile Capfile Todo'
|
|
||||||
alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo'
|
|
||||||
alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo'
|
|
||||||
|
|
||||||
# Edit Ruby app in TextMate
|
|
||||||
alias mr='mate CHANGELOG app config db lib public script spec test'
|
|
||||||
|
|
||||||
# If the tm command is called without an argument, open TextMate in the current directory
|
# If the tm command is called without an argument, open TextMate in the current directory
|
||||||
# If tm is passed a directory, cd to it and open it in TextMate
|
# If tm is passed a directory, cd to it and open it in TextMate
|
||||||
# If tm is passed a file, open it in TextMate
|
# If tm is passed a file, open it in TextMate
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,8 @@ Insertion
|
||||||
Delete and Insert
|
Delete and Insert
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
- `ctrl-h` : While in *Insert mode*: delete character after the cursor
|
- `ctrl-h` : While in *Insert mode*: delete character before the cursor
|
||||||
- `ctrl-w` : While in *Insert mode*: delete word after the cursor
|
- `ctrl-w` : While in *Insert mode*: delete word before the cursor
|
||||||
- `d{motion}` : Delete text that {motion} moves over
|
- `d{motion}` : Delete text that {motion} moves over
|
||||||
- `dd` : Delete line
|
- `dd` : Delete line
|
||||||
- `D` : Delete characters under the cursor until the end of the line
|
- `D` : Delete characters under the cursor until the end of the line
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,10 @@ function simulator {
|
||||||
if [[ -d "${devfolder}/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app" ]]; then
|
if [[ -d "${devfolder}/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app" ]]; then
|
||||||
open "${devfolder}/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app"
|
open "${devfolder}/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app"
|
||||||
# Xcode ≥ 6.x
|
# Xcode ≥ 6.x
|
||||||
else
|
elif [[ -d "${devfolder}/Applications/iOS Simulator.app" ]]; then
|
||||||
open "${devfolder}/Applications/iOS Simulator.app"
|
open "${devfolder}/Applications/iOS Simulator.app"
|
||||||
|
# Xcode ≥ 7.x
|
||||||
|
else
|
||||||
|
open "${devfolder}/Applications/Simulator.app"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,15 @@ PROMPT='
|
||||||
%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%}
|
%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%}
|
||||||
$ '
|
$ '
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}⭠ "
|
# Must use Powerline font, for \uE0A0 to render.
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}\uE0A0 "
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!"
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!"
|
||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
|
||||||
if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
||||||
RPROMPT='%{$fg_bold[red]%}‹$(~/.rvm/bin/rvm-prompt i v)›%{$reset_color%}'
|
RPROMPT='%{$fg_bold[red]%}‹$(rvm_current)›%{$reset_color%}'
|
||||||
else
|
else
|
||||||
if which rbenv &> /dev/null; then
|
if which rbenv &> /dev/null; then
|
||||||
RPROMPT='%{$fg_bold[red]%}$(rbenv_version)%{$reset_color%}'
|
RPROMPT='%{$fg_bold[red]%}$(rbenv_version)%{$reset_color%}'
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,9 @@ fi
|
||||||
# oh-my-zsh directory.
|
# oh-my-zsh directory.
|
||||||
[[ -w "$ZSH" ]] || return 0
|
[[ -w "$ZSH" ]] || return 0
|
||||||
|
|
||||||
|
# Cancel upgrade if git is unavailable on the system
|
||||||
|
whence git >/dev/null || return 0
|
||||||
|
|
||||||
if [ -f ~/.zsh-update ]
|
if [ -f ~/.zsh-update ]
|
||||||
then
|
then
|
||||||
. ~/.zsh-update
|
. ~/.zsh-update
|
||||||
|
|
@ -54,4 +57,3 @@ else
|
||||||
# create the zsh file
|
# create the zsh file
|
||||||
_update_zsh_update
|
_update_zsh_update
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
206
tools/install.sh
206
tools/install.sh
|
|
@ -1,98 +1,122 @@
|
||||||
set -e
|
main() {
|
||||||
|
# Use colors, but only if connected to a terminal, and that terminal
|
||||||
|
# supports them.
|
||||||
|
if which tput >/dev/null 2>&1; then
|
||||||
|
ncolors=$(tput colors)
|
||||||
|
fi
|
||||||
|
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
||||||
|
RED="$(tput setaf 1)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
BOLD="$(tput bold)"
|
||||||
|
NORMAL="$(tput sgr0)"
|
||||||
|
else
|
||||||
|
RED=""
|
||||||
|
GREEN=""
|
||||||
|
YELLOW=""
|
||||||
|
BLUE=""
|
||||||
|
BOLD=""
|
||||||
|
NORMAL=""
|
||||||
|
fi
|
||||||
|
|
||||||
# Use colors, but only if connected to a terminal, and that terminal
|
# Only enable exit-on-error after the non-critical colorization stuff,
|
||||||
# supports them.
|
# which may fail on systems lacking tput or terminfo
|
||||||
ncolors=$(tput colors)
|
set -e
|
||||||
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
|
||||||
RED="$(tput setaf 1)"
|
|
||||||
GREEN="$(tput setaf 2)"
|
|
||||||
YELLOW="$(tput setaf 3)"
|
|
||||||
BLUE="$(tput setaf 4)"
|
|
||||||
BOLD="$(tput bold)"
|
|
||||||
NORMAL="$(tput sgr0)"
|
|
||||||
else
|
|
||||||
RED=""
|
|
||||||
GREEN=""
|
|
||||||
YELLOW=""
|
|
||||||
BLUE=""
|
|
||||||
BOLD=""
|
|
||||||
NORMAL=""
|
|
||||||
fi
|
|
||||||
CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
|
|
||||||
if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
|
|
||||||
printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
unset CHECK_ZSH_INSTALLED
|
|
||||||
|
|
||||||
if [ ! -n "$ZSH" ]; then
|
CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
|
||||||
ZSH=~/.oh-my-zsh
|
if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
|
||||||
fi
|
printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
unset CHECK_ZSH_INSTALLED
|
||||||
|
|
||||||
if [ -d "$ZSH" ]; then
|
if [ ! -n "$ZSH" ]; then
|
||||||
printf "${YELLOW}You already have Oh My Zsh installed.${NORMAL}\n"
|
ZSH=~/.oh-my-zsh
|
||||||
printf "You'll need to remove $ZSH if you want to re-install.\n"
|
fi
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prevent the cloned repository from having insecure permissions. Failing to do
|
if [ -d "$ZSH" ]; then
|
||||||
# so causes compinit() calls to fail with "command not found: compdef" errors
|
printf "${YELLOW}You already have Oh My Zsh installed.${NORMAL}\n"
|
||||||
# for users with insecure umasks (e.g., "002", allowing group writability). Note
|
printf "You'll need to remove $ZSH if you want to re-install.\n"
|
||||||
# that this will be ignored under Cygwin by default, as Windows ACLs take
|
exit
|
||||||
# precedence over umasks except for filesystems mounted with option "noacl".
|
fi
|
||||||
umask g-w,o-w
|
|
||||||
|
|
||||||
printf "${BLUE}Cloning Oh My Zsh...${NORMAL}\n"
|
# Prevent the cloned repository from having insecure permissions. Failing to do
|
||||||
hash git >/dev/null 2>&1 && env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || {
|
# so causes compinit() calls to fail with "command not found: compdef" errors
|
||||||
printf "git not installed\n"
|
# for users with insecure umasks (e.g., "002", allowing group writability). Note
|
||||||
exit
|
# that this will be ignored under Cygwin by default, as Windows ACLs take
|
||||||
|
# precedence over umasks except for filesystems mounted with option "noacl".
|
||||||
|
umask g-w,o-w
|
||||||
|
|
||||||
|
printf "${BLUE}Cloning Oh My Zsh...${NORMAL}\n"
|
||||||
|
hash git >/dev/null 2>&1 || {
|
||||||
|
echo "Error: git is not installed"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || {
|
||||||
|
printf "Error: git clone of oh-my-zsh repo failed\n"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# The Windows (MSYS) Git is not compatible with normal use on cygwin
|
||||||
|
if [ "$OSTYPE" = cygwin ]; then
|
||||||
|
if git --version | grep msysgit > /dev/null; then
|
||||||
|
echo "Error: Windows/MSYS Git is not supported on Cygwin"
|
||||||
|
echo "Error: Make sure the Cygwin git package is installed and is first on the path"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "${BLUE}Looking for an existing zsh config...${NORMAL}\n"
|
||||||
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then
|
||||||
|
printf "${YELLOW}Found ~/.zshrc.${NORMAL} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NORMAL}\n";
|
||||||
|
mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "${BLUE}Using the Oh My Zsh template file and adding it to ~/.zshrc${NORMAL}\n"
|
||||||
|
cp $ZSH/templates/zshrc.zsh-template ~/.zshrc
|
||||||
|
sed "/^export ZSH=/ c\\
|
||||||
|
export ZSH=$ZSH
|
||||||
|
" ~/.zshrc > ~/.zshrc-omztemp
|
||||||
|
mv -f ~/.zshrc-omztemp ~/.zshrc
|
||||||
|
|
||||||
|
printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NORMAL}\n"
|
||||||
|
sed "/export PATH=/ c\\
|
||||||
|
export PATH=\"$PATH\"
|
||||||
|
" ~/.zshrc > ~/.zshrc-omztemp
|
||||||
|
mv -f ~/.zshrc-omztemp ~/.zshrc
|
||||||
|
|
||||||
|
# If this user's login shell is not already "zsh", attempt to switch.
|
||||||
|
TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)')
|
||||||
|
if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then
|
||||||
|
# If this platform provides a "chsh" command (not Cygwin), do it, man!
|
||||||
|
if hash chsh >/dev/null 2>&1; then
|
||||||
|
printf "${BLUE}Time to change your default shell to zsh!${NORMAL}\n"
|
||||||
|
chsh -s $(grep /zsh$ /etc/shells | tail -1)
|
||||||
|
# Else, suggest the user do so manually.
|
||||||
|
else
|
||||||
|
printf "I can't change your shell automatically because this system does not have chsh.\n"
|
||||||
|
printf "${BLUE}Please manually change your default shell to zsh!${NORMAL}\n"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "${GREEN}"
|
||||||
|
echo ' __ __ '
|
||||||
|
echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
|
||||||
|
echo ' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
|
||||||
|
echo '/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
|
||||||
|
echo '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
|
||||||
|
echo ' /____/ ....is now installed!'
|
||||||
|
echo ''
|
||||||
|
echo ''
|
||||||
|
echo 'Please look over the ~/.zshrc file to select plugins, themes, and options.'
|
||||||
|
echo ''
|
||||||
|
echo 'p.s. Follow us at https://twitter.com/ohmyzsh.'
|
||||||
|
echo ''
|
||||||
|
echo 'p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.'
|
||||||
|
echo ''
|
||||||
|
printf "${NORMAL}"
|
||||||
|
env zsh
|
||||||
}
|
}
|
||||||
|
|
||||||
printf "${BLUE}Looking for an existing zsh config...${NORMAL}\n"
|
main
|
||||||
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then
|
|
||||||
printf "${YELLOW}Found ~/.zshrc.${NORMAL} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NORMAL}\n";
|
|
||||||
mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "${BLUE}Using the Oh My Zsh template file and adding it to ~/.zshrc${NORMAL}\n"
|
|
||||||
cp $ZSH/templates/zshrc.zsh-template ~/.zshrc
|
|
||||||
sed "/^export ZSH=/ c\\
|
|
||||||
export ZSH=$ZSH
|
|
||||||
" ~/.zshrc > ~/.zshrc-omztemp
|
|
||||||
mv -f ~/.zshrc-omztemp ~/.zshrc
|
|
||||||
|
|
||||||
printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NORMAL}\n"
|
|
||||||
sed "/export PATH=/ c\\
|
|
||||||
export PATH=\"$PATH\"
|
|
||||||
" ~/.zshrc > ~/.zshrc-omztemp
|
|
||||||
mv -f ~/.zshrc-omztemp ~/.zshrc
|
|
||||||
|
|
||||||
# If this user's login shell is not already "zsh", attempt to switch.
|
|
||||||
if [ "$(expr "$SHELL" : '.*/\(.*\)')" != "zsh" ]; then
|
|
||||||
# If this platform provides a "chsh" command (not Cygwin), do it, man!
|
|
||||||
if hash chsh >/dev/null 2>&1; then
|
|
||||||
printf "${BLUE}Time to change your default shell to zsh!${NORMAL}\n"
|
|
||||||
chsh -s $(grep /zsh$ /etc/shells | tail -1)
|
|
||||||
# Else, suggest the user do so manually.
|
|
||||||
else
|
|
||||||
printf "${BLUE}Please manually change your default shell to zsh!${NORMAL}\n"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "${GREEN}"
|
|
||||||
echo ' __ __ '
|
|
||||||
echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
|
|
||||||
echo ' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
|
|
||||||
echo '/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
|
|
||||||
echo '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
|
|
||||||
echo ' /____/ ....is now installed!'
|
|
||||||
echo ''
|
|
||||||
echo ''
|
|
||||||
echo 'Please look over the ~/.zshrc file to select plugins, themes, and options.'
|
|
||||||
echo ''
|
|
||||||
echo 'p.s. Follow us at https://twitter.com/ohmyzsh.'
|
|
||||||
echo ''
|
|
||||||
echo 'p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.'
|
|
||||||
echo ''
|
|
||||||
printf "${NORMAL}"
|
|
||||||
env zsh
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,12 @@
|
||||||
|
read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation
|
||||||
|
if [ "$confirmation" != y ] && [ "$confirmation" != Y ]
|
||||||
|
then
|
||||||
|
echo "Uninstall cancelled"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Removing ~/.oh-my-zsh"
|
echo "Removing ~/.oh-my-zsh"
|
||||||
if [[ -d ~/.oh-my-zsh ]]
|
if [ -d ~/.oh-my-zsh ]
|
||||||
then
|
then
|
||||||
rm -rf ~/.oh-my-zsh
|
rm -rf ~/.oh-my-zsh
|
||||||
fi
|
fi
|
||||||
|
|
@ -20,9 +27,13 @@ then
|
||||||
|
|
||||||
source ~/.zshrc;
|
source ~/.zshrc;
|
||||||
else
|
else
|
||||||
echo "Switching back to bash"
|
if hash chsh >/dev/null 2>&1
|
||||||
chsh -s /bin/bash
|
then
|
||||||
source /etc/profile
|
echo "Switching back to bash"
|
||||||
|
chsh -s /bin/bash
|
||||||
|
else
|
||||||
|
echo "You can edit /etc/passwd to switch your default shell back to bash"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
|
echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
|
|
||||||
# Use colors, but only if connected to a terminal, and that terminal
|
# Use colors, but only if connected to a terminal, and that terminal
|
||||||
# supports them.
|
# supports them.
|
||||||
ncolors=$(tput colors)
|
if which tput >/dev/null 2>&1; then
|
||||||
|
ncolors=$(tput colors)
|
||||||
|
fi
|
||||||
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
||||||
RED="$(tput setaf 1)"
|
RED="$(tput setaf 1)"
|
||||||
GREEN="$(tput setaf 2)"
|
GREEN="$(tput setaf 2)"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue