mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-26 21:51:05 +01:00
Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh
This commit is contained in:
commit
4a2e9ed039
21 changed files with 169 additions and 15 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -4,5 +4,6 @@ projects.zsh
|
||||||
custom/*
|
custom/*
|
||||||
!custom/example
|
!custom/example
|
||||||
!custom/example.zsh
|
!custom/example.zsh
|
||||||
cache
|
|
||||||
*.swp
|
*.swp
|
||||||
|
!custom/example.zshcache
|
||||||
|
cache/
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
A handful of functions, auto-complete helpers, and stuff that makes you shout...
|
A handful of functions, auto-complete helpers, and stuff that makes you shout...
|
||||||
|
|
||||||
|
|
||||||
bq. "OH MY ZSHELL!"
|
bq. "OH MY ZSHELL!"
|
||||||
|
|
||||||
h2. Setup
|
h2. Setup
|
||||||
|
@ -68,9 +69,13 @@ h2. Help out!
|
||||||
|
|
||||||
I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
||||||
|
|
||||||
h3. Send us your theme!
|
h3. (Don't) Send us your theme! (for now)
|
||||||
|
|
||||||
|
-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.-
|
||||||
|
|
||||||
|
We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there.
|
||||||
|
|
||||||
|
|
||||||
I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
|
|
||||||
|
|
||||||
h2. Contributors
|
h2. Contributors
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ zstyle ':completion:*:hosts' hosts $hosts
|
||||||
|
|
||||||
# Use caching so that commands like apt and dpkg complete are useable
|
# Use caching so that commands like apt and dpkg complete are useable
|
||||||
zstyle ':completion::complete:*' use-cache 1
|
zstyle ':completion::complete:*' use-cache 1
|
||||||
zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/
|
zstyle ':completion::complete:*' cache-path $ZSH/cache/
|
||||||
|
|
||||||
# Don't complete uninteresting users
|
# Don't complete uninteresting users
|
||||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||||
|
|
|
@ -36,7 +36,7 @@ cd () {
|
||||||
|
|
||||||
alias md='mkdir -p'
|
alias md='mkdir -p'
|
||||||
alias rd=rmdir
|
alias rd=rmdir
|
||||||
alias d='dirs -v'
|
alias d='dirs -v | head -10'
|
||||||
|
|
||||||
# mkdir & cd to it
|
# mkdir & cd to it
|
||||||
function mcd() {
|
function mcd() {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
bindkey -e
|
bindkey -e
|
||||||
bindkey '\ew' kill-region
|
bindkey '\ew' kill-region
|
||||||
bindkey -s '\el' "ls\n"
|
bindkey -s '\el' "ls\n"
|
||||||
bindkey -s '\e.' "..\n"
|
|
||||||
bindkey '^r' history-incremental-search-backward
|
bindkey '^r' history-incremental-search-backward
|
||||||
bindkey "^[[5~" up-line-or-history
|
bindkey "^[[5~" up-line-or-history
|
||||||
bindkey "^[[6~" down-line-or-history
|
bindkey "^[[6~" down-line-or-history
|
||||||
|
|
|
@ -9,5 +9,5 @@ bindkey "^[m" copy-prev-shell-word
|
||||||
setopt long_list_jobs
|
setopt long_list_jobs
|
||||||
|
|
||||||
## pager
|
## pager
|
||||||
export PAGER=less
|
export PAGER="less -R"
|
||||||
export LC_CTYPE=$LANG
|
export LC_CTYPE=$LANG
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
||||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||||
function title {
|
function title {
|
||||||
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
|
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
if [[ "$TERM" == screen* ]]; then
|
if [[ "$TERM" == screen* ]]; then
|
||||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||||
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||||
|
|
|
@ -6,7 +6,7 @@ alias bu="bundle update"
|
||||||
|
|
||||||
# The following is based on https://github.com/gma/bundler-exec
|
# The following is based on https://github.com/gma/bundler-exec
|
||||||
|
|
||||||
bundled_commands=(annotate cap capify cucumber ey foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
|
bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
|
|
10
plugins/dircycle/dircycle.plugin.zsh
Normal file
10
plugins/dircycle/dircycle.plugin.zsh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
##
|
||||||
|
# dircycle plugin: enables cycling through the directory
|
||||||
|
# stack using Ctrl+Shift+Left/Right
|
||||||
|
|
||||||
|
eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }"
|
||||||
|
zle -N insert-cycledleft
|
||||||
|
bindkey "\e[1;6D" insert-cycledleft
|
||||||
|
eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q -0'; zle accept-line }"
|
||||||
|
zle -N insert-cycledright
|
||||||
|
bindkey "\e[1;6C" insert-cycledright
|
|
@ -12,7 +12,7 @@ dirpersistinstall () {
|
||||||
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
|
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
|
||||||
else
|
else
|
||||||
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
|
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
|
||||||
echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
|
echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
|
||||||
else
|
else
|
||||||
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
|
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
|
||||||
fi
|
fi
|
||||||
|
|
2
plugins/encode64/encode64.plugin.zsh
Normal file
2
plugins/encode64/encode64.plugin.zsh
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
encode64(){ echo -n $1 | base64 }
|
||||||
|
decode64(){ echo -n $1 | base64 -D }
|
|
@ -110,6 +110,8 @@ __git-flow-release ()
|
||||||
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
|
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
|
||||||
-m'[Use the given tag message]'\
|
-m'[Use the given tag message]'\
|
||||||
-p'[Push to $ORIGIN after performing finish]'\
|
-p'[Push to $ORIGIN after performing finish]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
|
-n"[Don't tag this release]"\
|
||||||
':version:__git_flow_version_list'
|
':version:__git_flow_version_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -162,6 +164,8 @@ __git-flow-hotfix ()
|
||||||
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
|
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
|
||||||
-m'[Use the given tag message]'\
|
-m'[Use the given tag message]'\
|
||||||
-p'[Push to $ORIGIN after performing finish]'\
|
-p'[Push to $ORIGIN after performing finish]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
|
-n"[Don't tag this release]"\
|
||||||
':hotfix:__git_flow_hotfix_list'
|
':hotfix:__git_flow_hotfix_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,12 @@ function current_branch() {
|
||||||
echo ${ref#refs/heads/}
|
echo ${ref#refs/heads/}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function current_repository() {
|
||||||
|
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
||||||
|
echo $(git remote -v | cut -d':' -f 2)
|
||||||
|
}
|
||||||
|
|
||||||
# these aliases take advantage of the previous function
|
# these aliases take advantage of the previous function
|
||||||
alias ggpull='git pull origin $(current_branch)'
|
alias ggpull='git pull origin $(current_branch)'
|
||||||
compdef ggpull=git
|
compdef ggpull=git
|
||||||
|
|
6
plugins/mvn/mvn.plugin.zsh
Normal file
6
plugins/mvn/mvn.plugin.zsh
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
function listMavenCompletions {
|
||||||
|
reply=(
|
||||||
|
cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`);
|
||||||
|
}
|
||||||
|
|
||||||
|
compctl -K listMavenCompletions mvn
|
|
@ -13,6 +13,7 @@ alias rd='_rails_command destroy'
|
||||||
alias rdb='_rails_command dbconsole'
|
alias rdb='_rails_command dbconsole'
|
||||||
alias rdbm='rake db:migrate db:test:clone'
|
alias rdbm='rake db:migrate db:test:clone'
|
||||||
alias rg='_rails_command generate'
|
alias rg='_rails_command generate'
|
||||||
|
alias rgm='_rails_command generate migration'
|
||||||
alias rp='_rails_command plugin'
|
alias rp='_rails_command plugin'
|
||||||
alias ru='_rails_command runner'
|
alias ru='_rails_command runner'
|
||||||
alias rs='_rails_command server'
|
alias rs='_rails_command server'
|
||||||
|
|
54
plugins/screen/screen.plugin.zsh
Normal file
54
plugins/screen/screen.plugin.zsh
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
||||||
|
# of the tab window should be.
|
||||||
|
if [[ $TERM == "screen" ]]; then
|
||||||
|
if [[ $_GET_PATH == '' ]]; then
|
||||||
|
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
||||||
|
fi
|
||||||
|
if [[ $_GET_HOST == '' ]]; then
|
||||||
|
_GET_HOST='echo $HOST | sed "s/\..*//"'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# use the current user as the prefix of the current tab title
|
||||||
|
TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
|
||||||
|
# when at the shell prompt, show a truncated version of the current path (with
|
||||||
|
# standard ~ replacement) as the rest of the title.
|
||||||
|
TAB_TITLE_PROMPT='$SHELL:t'
|
||||||
|
# when running a command, show the title of the command as the rest of the
|
||||||
|
# title (truncate to drop the path to the command)
|
||||||
|
TAB_TITLE_EXEC='$cmd[1]:t'
|
||||||
|
|
||||||
|
# use the current path (with standard ~ replacement) in square brackets as the
|
||||||
|
# prefix of the tab window hardstatus.
|
||||||
|
TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
|
||||||
|
# when at the shell prompt, use the shell name (truncated to remove the path to
|
||||||
|
# the shell) as the rest of the title
|
||||||
|
TAB_HARDSTATUS_PROMPT='$SHELL:t'
|
||||||
|
# when running a command, show the command name and arguments as the rest of
|
||||||
|
# the title
|
||||||
|
TAB_HARDSTATUS_EXEC='$cmd'
|
||||||
|
|
||||||
|
# tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
|
||||||
|
function screen_set()
|
||||||
|
{
|
||||||
|
# set the tab window title (%t) for screen
|
||||||
|
print -nR $'\033k'$1$'\033'\\\
|
||||||
|
|
||||||
|
# set hardstatus of tab window (%h) for screen
|
||||||
|
print -nR $'\033]0;'$2$'\a'
|
||||||
|
}
|
||||||
|
# called by zsh before executing a command
|
||||||
|
function preexec()
|
||||||
|
{
|
||||||
|
local -a cmd; cmd=(${(z)1}) # the command string
|
||||||
|
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC"
|
||||||
|
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC"
|
||||||
|
screen_set $tab_title $tab_hardstatus
|
||||||
|
}
|
||||||
|
# called by zsh before showing the prompt
|
||||||
|
function precmd()
|
||||||
|
{
|
||||||
|
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT"
|
||||||
|
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT"
|
||||||
|
screen_set $tab_title $tab_hardstatus
|
||||||
|
}
|
||||||
|
fi
|
7
plugins/suse/suse.plugin.zsh
Normal file
7
plugins/suse/suse.plugin.zsh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
alias zi='sudo zypper install'
|
||||||
|
alias zrf='sudo zypper refresh'
|
||||||
|
alias zs='zypper search'
|
||||||
|
alias zup='sudo zypper dist-upgrade'
|
||||||
|
alias zrm='sudo zypper remove'
|
||||||
|
alias zp='sudo zypper patch'
|
||||||
|
alias zps='sudo zypper ps'
|
47
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
Normal file
47
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
WRAPPER_FOUND=0
|
||||||
|
for wrapsource in "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do
|
||||||
|
if [[ -e $wrapsource ]] ; then
|
||||||
|
WRAPPER_FOUND=1
|
||||||
|
source $wrapsource
|
||||||
|
|
||||||
|
if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
|
||||||
|
# Automatically activate Git projects' virtual environments based on the
|
||||||
|
# directory name of the project. Virtual environment name can be overridden
|
||||||
|
# by placing a .venv file in the project root with a virtualenv name in it
|
||||||
|
function workon_cwd {
|
||||||
|
# Check that this is a Git repo
|
||||||
|
GIT_DIR=`git rev-parse --git-dir 2> /dev/null`
|
||||||
|
if (( $? == 0 )); then
|
||||||
|
# Find the repo root and check for virtualenv name override
|
||||||
|
GIT_DIR=`readlink -f $GIT_DIR`
|
||||||
|
PROJECT_ROOT=`dirname "$GIT_DIR"`
|
||||||
|
ENV_NAME=`basename "$PROJECT_ROOT"`
|
||||||
|
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
|
||||||
|
ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
|
||||||
|
fi
|
||||||
|
# Activate the environment only if it is not already active
|
||||||
|
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
|
||||||
|
if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
|
||||||
|
workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ $CD_VIRTUAL_ENV ]; then
|
||||||
|
# We've just left the repo, deactivate the environment
|
||||||
|
# Note: this only happens if the virtualenv was activated automatically
|
||||||
|
deactivate && unset CD_VIRTUAL_ENV
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# New cd function that does the virtualenv magic
|
||||||
|
function cd {
|
||||||
|
builtin cd "$@" && workon_cwd
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $WRAPPER_FOUND -eq 0 ] ; then
|
||||||
|
print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`."
|
||||||
|
fi
|
|
@ -3,10 +3,14 @@
|
||||||
alias ys="yum search" # search package
|
alias ys="yum search" # search package
|
||||||
alias yp="yum info" # show package info
|
alias yp="yum info" # show package info
|
||||||
alias yl="yum list" # list packages
|
alias yl="yum list" # list packages
|
||||||
|
alias ygl="yum grouplist" # list package groups
|
||||||
alias yli="yum list installed" # print all installed packages
|
alias yli="yum list installed" # print all installed packages
|
||||||
|
alias ymc="yum makecache # rebuilds the yum package list
|
||||||
|
|
||||||
alias yu="sudo yum update" # upgrate packages
|
alias yu="sudo yum update" # upgrate packages
|
||||||
alias yi="sudo yum install" # install package
|
alias yi="sudo yum install" # install package
|
||||||
|
alias ygi="sudo yum groupinstall" # install package group
|
||||||
alias yr="sudo yum remove" # remove package
|
alias yr="sudo yum remove" # remove package
|
||||||
|
alias ygr="sudo yum groupremove" # remove pagage group
|
||||||
alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
|
alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
|
||||||
alias yc="sudo yum clean all" # clean cache
|
alias yc="sudo yum clean all" # clean cache
|
|
@ -2,7 +2,7 @@ PROMPT='%{$fg[green]%} %% '
|
||||||
# RPS1='%{$fg[blue]%}%~%{$reset_color%} '
|
# RPS1='%{$fg[blue]%}%~%{$reset_color%} '
|
||||||
RPS1='%{$fg[white]%}%2~$(git_prompt_info) %{$fg_bold[blue]%}%m%{$reset_color%}'
|
RPS1='%{$fg[white]%}%2~$(git_prompt_info) %{$fg_bold[blue]%}%m%{$reset_color%}'
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[yellow]%}"
|
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[yellow]%}("
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ⚡%{$fg[yellow]%}"
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ⚡%{$fg[yellow]%}"
|
||||||
|
|
|
@ -5,7 +5,13 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
|
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
|
||||||
/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
which git > /dev/null
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
||||||
|
else
|
||||||
|
echo "git not installed"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
||||||
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
||||||
|
|
Loading…
Reference in a new issue