mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 00:40:07 +00:00
Merge remote branch 'upstream/master'
This commit is contained in:
commit
3726611275
17 changed files with 208 additions and 60 deletions
|
@ -3,14 +3,11 @@ HISTFILE=$HOME/.zsh_history
|
|||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
|
||||
setopt hist_ignore_dups # ignore duplication command history list
|
||||
setopt share_history # share command history data
|
||||
|
||||
setopt hist_verify
|
||||
setopt inc_append_history
|
||||
setopt append_history
|
||||
setopt extended_history
|
||||
setopt hist_expire_dups_first
|
||||
setopt hist_ignore_dups # ignore duplication command history list
|
||||
setopt hist_ignore_space
|
||||
|
||||
setopt SHARE_HISTORY
|
||||
setopt APPEND_HISTORY
|
||||
setopt hist_verify
|
||||
setopt inc_append_history
|
||||
setopt share_history # share command history data
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||
function title {
|
||||
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||
print -Pn "\e]2;$2:q\a" #set window name
|
||||
|
@ -16,14 +16,18 @@ ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
|||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
||||
|
||||
#Appears when you have the prompt
|
||||
function precmd {
|
||||
function omz_termsupport_precmd {
|
||||
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
||||
}
|
||||
|
||||
#Appears at the beginning of (and during) of command execution
|
||||
function preexec {
|
||||
function omz_termsupport_preexec {
|
||||
emulate -L zsh
|
||||
setopt extended_glob
|
||||
local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
||||
title "$CMD" "%100>...>$2%<<"
|
||||
}
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook precmd omz_termsupport_precmd
|
||||
add-zsh-hook preexec omz_termsupport_preexec
|
||||
|
|
23
oh-my-zsh.sh
23
oh-my-zsh.sh
|
@ -13,20 +13,27 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
|
|||
# TIP: Add files you don't want in git to .gitignore
|
||||
for config_file ($ZSH/lib/*.zsh) source $config_file
|
||||
|
||||
# Add all defined plugins to fpath
|
||||
# Set ZSH_CUSTOM to the path where your custom config files
|
||||
# and plugins exists, or else we will use the default custom/
|
||||
if [[ -z "$ZSH_CUSTOM" ]]; then
|
||||
ZSH_CUSTOM="$ZSH/custom"
|
||||
fi
|
||||
|
||||
# Add all defined plugins to fpath. This must be done
|
||||
# before running compinit.
|
||||
plugin=${plugin:=()}
|
||||
for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath)
|
||||
for plugin ($plugins); do
|
||||
if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
|
||||
fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
|
||||
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
|
||||
fpath=($ZSH/plugins/$plugin $fpath)
|
||||
fi
|
||||
done
|
||||
|
||||
# Load and run compinit
|
||||
autoload -U compinit
|
||||
compinit -i
|
||||
|
||||
# Set ZSH_CUSTOM to the path where your custom config files
|
||||
# and plugins exists, or else we will use the default custom/
|
||||
if [ "$ZSH_CUSTOM" = "" ]
|
||||
then
|
||||
ZSH_CUSTOM="$ZSH/custom"
|
||||
fi
|
||||
|
||||
# Load all of the plugins that were defined in ~/.zshrc
|
||||
for plugin ($plugins); do
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
if [ -f `brew --prefix`/etc/autojump ]; then
|
||||
if [ -f /opt/local/etc/profile.d/autojump.sh ]; then
|
||||
. /opt/local/etc/profile.d/autojump.sh
|
||||
elif [ -f `brew --prefix`/etc/autojump ]; then
|
||||
. `brew --prefix`/etc/autojump
|
||||
fi
|
||||
|
|
|
@ -3,30 +3,43 @@
|
|||
|
||||
# pip zsh completion, based on homebrew completion
|
||||
|
||||
_pip_all() {
|
||||
# we cache the list of packages (originally from the macports plugin)
|
||||
if (( ! $+piplist )); then
|
||||
echo -n " (caching package index...)"
|
||||
piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'))
|
||||
fi
|
||||
}
|
||||
|
||||
_pip_installed() {
|
||||
installed_pkgs=(`pip freeze`)
|
||||
installed_pkgs=(`pip freeze | cut -d '=' -f 1`)
|
||||
}
|
||||
|
||||
local -a _1st_arguments
|
||||
_1st_arguments=(
|
||||
'bundle:Create pybundles (archives containing multiple packages)'
|
||||
'freeze:Output all currently installed packages (exact versions) to stdout'
|
||||
'help:Show available commands'
|
||||
'install:Install packages'
|
||||
'search:Search PyPI'
|
||||
'uninstall:Uninstall packages'
|
||||
'unzip:Unzip individual packages'
|
||||
'zip:Zip individual packages'
|
||||
'bundle:create pybundles (archives containing multiple packages)'
|
||||
'freeze:output all currently installed packages (exact versions) to stdout'
|
||||
'help:show available commands'
|
||||
'install:install packages'
|
||||
'search:search PyPI'
|
||||
'uninstall:uninstall packages'
|
||||
'unzip:unzip individual packages'
|
||||
'zip:zip individual packages'
|
||||
)
|
||||
|
||||
local expl
|
||||
local -a pkgs installed_pkgs
|
||||
local -a all_pkgs installed_pkgs
|
||||
|
||||
_arguments \
|
||||
'(--version)--version[Show version number of program and exit]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[Give more output]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[Give less output]' \
|
||||
'(-h --help)'{-h,--help}'[Show help]' \
|
||||
'(--version)--version[show version number of program and exit]' \
|
||||
'(-h --help)'{-h,--help}'[show help]' \
|
||||
'(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \
|
||||
'(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[give more output]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[give less output]' \
|
||||
'(--log)--log[log file location]' \
|
||||
'(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \
|
||||
'(--timeout)--timeout[socket timeout (default 15s)]' \
|
||||
'*:: :->subcmds' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
|
@ -35,10 +48,25 @@ if (( CURRENT == 1 )); then
|
|||
fi
|
||||
|
||||
case "$words[1]" in
|
||||
list)
|
||||
if [[ "$state" == forms ]]; then
|
||||
_pip_installed
|
||||
_requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs
|
||||
search)
|
||||
_arguments \
|
||||
'(--index)--index[base URL of Python Package Index]' ;;
|
||||
freeze)
|
||||
_arguments \
|
||||
'(-l --local)'{-l,--local}'[report only virtualenv packages]' ;;
|
||||
install)
|
||||
_arguments \
|
||||
'(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
|
||||
'(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
|
||||
'(--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]' \
|
||||
'(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \
|
||||
'1: :->packages' && return 0
|
||||
|
||||
if [[ "$state" == packages ]]; then
|
||||
_pip_all
|
||||
_wanted piplist expl 'packages' compadd -a piplist
|
||||
fi ;;
|
||||
uninstall)
|
||||
_pip_installed
|
||||
|
|
|
@ -17,3 +17,5 @@ alias rp='_rails_command plugin'
|
|||
alias rs='_rails_command server'
|
||||
alias rsd='_rails_command server --debugger'
|
||||
alias devlog='tail -f log/development.log'
|
||||
alias rdm='rake db:migrate'
|
||||
alias rdr='rake db:rollback'
|
||||
|
|
29
plugins/wakeonlan/README
Normal file
29
plugins/wakeonlan/README
Normal file
|
@ -0,0 +1,29 @@
|
|||
This plugin provides a wrapper around the "wakeonlan" tool available from most
|
||||
distributions' package repositories, or from the following website:
|
||||
|
||||
http://gsd.di.uminho.pt/jpo/software/wakeonlan/
|
||||
|
||||
In order to use this wrapper, create the ~/.wakeonlan directory, and place in
|
||||
that directory one file for each device you would like to be able to wake. Give
|
||||
the file a name that describes the device, such as its hostname. Each file
|
||||
should contain a line with the mac address of the target device and the network
|
||||
broadcast address.
|
||||
|
||||
For instance, there might be a file ~/.wakeonlan/leto with the following
|
||||
contents:
|
||||
|
||||
00:11:22:33:44:55:66 192.168.0.255
|
||||
|
||||
To wake that device, use the following command:
|
||||
|
||||
# wake leto
|
||||
|
||||
The available device names will be autocompleted, so:
|
||||
|
||||
# wake <tab>
|
||||
|
||||
...will suggest "leto", along with any other configuration files that were
|
||||
placed in the ~/.wakeonlan directory.
|
||||
|
||||
For more information regarding the configuration file format, check the
|
||||
wakeonlan man page.
|
4
plugins/wakeonlan/_wake
Normal file
4
plugins/wakeonlan/_wake
Normal file
|
@ -0,0 +1,4 @@
|
|||
#compdef wake
|
||||
#autoload
|
||||
|
||||
_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0
|
14
plugins/wakeonlan/wakeonlan.plugin.zsh
Normal file
14
plugins/wakeonlan/wakeonlan.plugin.zsh
Normal file
|
@ -0,0 +1,14 @@
|
|||
function wake() {
|
||||
local config_file="$HOME/.wakeonlan/$1"
|
||||
if [[ ! -f "$config_file" ]]; then
|
||||
echo "ERROR: There is no configuration file at \"$config_file\"."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if (( ! $+commands[wakeonlan] )); then
|
||||
echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?"
|
||||
return 1
|
||||
fi
|
||||
|
||||
wakeonlan -f "$config_file"
|
||||
}
|
|
@ -2,7 +2,7 @@ function toon {
|
|||
echo -n ""
|
||||
}
|
||||
|
||||
get_git_dirty() {
|
||||
get_git_dirty() {
|
||||
git diff --quiet || echo '*'
|
||||
}
|
||||
|
||||
|
@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats \
|
|||
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
|
||||
zstyle ':vcs_info:*' enable git cvs svn
|
||||
|
||||
precmd () {
|
||||
theme_precmd () {
|
||||
vcs_info
|
||||
}
|
||||
|
||||
setopt prompt_subst
|
||||
PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook precmd theme_precmd
|
|
@ -14,6 +14,8 @@ git_custom_status() {
|
|||
#RVM and git settings
|
||||
if [[ -s ~/.rvm/scripts/rvm ]] ; then
|
||||
RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'
|
||||
else
|
||||
RPS1='$(git_custom_status) $EPS1'
|
||||
fi
|
||||
|
||||
PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b '
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
function precmd {
|
||||
function theme_precmd {
|
||||
local TERMWIDTH
|
||||
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
||||
|
||||
|
||||
###
|
||||
# Truncate the path if it's too long.
|
||||
|
||||
|
||||
PR_FILLBAR=""
|
||||
PR_PWDLEN=""
|
||||
|
||||
|
||||
local promptsize=${#${(%):---(%n@%m:%l)---()--}}
|
||||
local rubyprompt=`rvm_prompt_info`
|
||||
local rubypromptsize=${#${rubyprompt}}
|
||||
local pwdsize=${#${(%):-%~}}
|
||||
|
||||
|
||||
if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
|
||||
((PR_PWDLEN=$TERMWIDTH - $promptsize))
|
||||
else
|
||||
|
@ -24,7 +24,7 @@ function precmd {
|
|||
|
||||
|
||||
setopt extended_glob
|
||||
preexec () {
|
||||
theme_preexec () {
|
||||
if [[ "$TERM" == "screen" ]]; then
|
||||
local CMD=${1[(wr)^(*=*|sudo|-*)]}
|
||||
echo -n "\ek$CMD\e\\"
|
||||
|
@ -69,7 +69,7 @@ setprompt () {
|
|||
|
||||
###
|
||||
# See if we can use extended characters to look nicer.
|
||||
|
||||
|
||||
typeset -A altchar
|
||||
set -A altchar ${(s..)terminfo[acsc]}
|
||||
PR_SET_CHARSET="%{$terminfo[enacs]%}"
|
||||
|
@ -81,10 +81,10 @@ setprompt () {
|
|||
PR_LRCORNER=${altchar[j]:--}
|
||||
PR_URCORNER=${altchar[k]:--}
|
||||
|
||||
|
||||
|
||||
###
|
||||
# Decide if we need to set titlebar text.
|
||||
|
||||
|
||||
case $TERM in
|
||||
xterm*)
|
||||
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
|
||||
|
@ -96,8 +96,8 @@ setprompt () {
|
|||
PR_TITLEBAR=''
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
###
|
||||
# Decide whether to set a screen title
|
||||
if [[ "$TERM" == "screen" ]]; then
|
||||
|
@ -105,8 +105,8 @@ setprompt () {
|
|||
else
|
||||
PR_STITLE=''
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
###
|
||||
# Finally, the prompt.
|
||||
|
||||
|
@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
|
|||
}
|
||||
|
||||
setprompt
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook precmd theme_precmd
|
||||
add-zsh-hook preexec theme_preexec
|
|
@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
|
|||
zstyle ':vcs_info:*' check-for-changes true
|
||||
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
|
||||
zstyle ':vcs_info:*' enable git svn
|
||||
precmd () {
|
||||
theme_precmd () {
|
||||
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
|
||||
zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
|
||||
} else {
|
||||
|
@ -19,3 +19,6 @@ precmd () {
|
|||
|
||||
setopt prompt_subst
|
||||
PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook precmd theme_precmd
|
||||
|
|
9
themes/pygmalion.zsh-theme
Normal file
9
themes/pygmalion.zsh-theme
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Yay! High voltage and arrows!
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
|
||||
PROMPT='%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}$(git_prompt_info)%{$fg[cyan]%}⇒%{$reset_color%} '
|
||||
|
23
themes/suvash.zsh-theme
Normal file
23
themes/suvash.zsh-theme
Normal file
|
@ -0,0 +1,23 @@
|
|||
function prompt_char {
|
||||
git branch >/dev/null 2>/dev/null && echo '±' && return
|
||||
hg root >/dev/null 2>/dev/null && echo 'Hg' && return
|
||||
echo '○'
|
||||
}
|
||||
|
||||
function virtualenv_info {
|
||||
[ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
|
||||
}
|
||||
|
||||
function collapse_pwd {
|
||||
echo $(pwd | sed -e "s,^$HOME,~,")
|
||||
}
|
||||
|
||||
PROMPT='%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) using %{$reset_color%}%{$fg[red]%}$(~/.rvm/bin/rvm-prompt)%{$reset_color%}
|
||||
$(virtualenv_info)$(prompt_char) '
|
||||
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
|
||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
7
themes/zhann.zsh-theme
Normal file
7
themes/zhann.zsh-theme
Normal file
|
@ -0,0 +1,7 @@
|
|||
PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
|
||||
RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v) %{$reset_color%}'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[red]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
|
|
@ -8,6 +8,12 @@ function _update_zsh_update() {
|
|||
echo "LAST_EPOCH=$(_current_epoch)" > ~/.zsh-update
|
||||
}
|
||||
|
||||
function _upgrade_zsh() {
|
||||
/usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
|
||||
# update the zsh file
|
||||
_update_zsh_update
|
||||
}
|
||||
|
||||
if [ -f ~/.zsh-update ]
|
||||
then
|
||||
. ~/.zsh-update
|
||||
|
@ -19,17 +25,21 @@ then
|
|||
epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
|
||||
if [ $epoch_diff -gt 6 ]
|
||||
then
|
||||
echo "[Oh My Zsh] Would you like to check for updates?"
|
||||
echo "Type Y to update oh-my-zsh: \c"
|
||||
read line
|
||||
if [ "$line" = Y ] || [ "$line" = y ]
|
||||
if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
|
||||
then
|
||||
/usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
|
||||
# update the zsh file
|
||||
_update_zsh_update
|
||||
_upgrade_zsh
|
||||
else
|
||||
echo "[Oh My Zsh] Would you like to check for updates?"
|
||||
echo "Type Y to update oh-my-zsh: \c"
|
||||
read line
|
||||
if [ "$line" = Y ] || [ "$line" = y ]
|
||||
then
|
||||
_upgrade_zsh
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# create the zsh file
|
||||
_update_zsh_update
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in a new issue