mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-02 02:19:06 +01:00
Merge remote-tracking branch 'robbyrussell/master' into develop
Conflicts: .gitignore README.textile lib/aliases.zsh lib/functions.zsh lib/git.zsh lib/misc.zsh templates/zshrc.zsh-template tools/install.sh
This commit is contained in:
commit
ced4f4decc
111 changed files with 4273 additions and 378 deletions
24
lib/aliases.zsh
Normal file
24
lib/aliases.zsh
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Push and pop directories on directory stack
|
||||
alias pu='pushd'
|
||||
alias po='popd'
|
||||
|
||||
# Basic directory operations
|
||||
alias ...='cd ../..'
|
||||
alias -- -='cd -'
|
||||
|
||||
# Super user
|
||||
alias _='sudo'
|
||||
|
||||
#alias g='grep -in'
|
||||
|
||||
# Show history
|
||||
alias history='fc -l 1'
|
||||
|
||||
# List direcory contents
|
||||
alias lsa='ls -lah'
|
||||
alias l='ls -la'
|
||||
alias ll='ls -l'
|
||||
alias sl=ls # often screw this up
|
||||
|
||||
alias afind='ack-grep -il'
|
||||
|
||||
|
|
@ -30,12 +30,14 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir
|
|||
cdpath=(.)
|
||||
|
||||
# use /etc/hosts and known_hosts for hostname completion
|
||||
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
||||
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
||||
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
||||
hosts=(
|
||||
"$_global_ssh_hosts[@]"
|
||||
"$_ssh_hosts[@]"
|
||||
"$_etc_hosts[@]"
|
||||
`hostname`
|
||||
"$HOST"
|
||||
localhost
|
||||
)
|
||||
zstyle ':completion:*:hosts' hosts $hosts
|
||||
|
|
@ -57,3 +59,12 @@ zstyle ':completion:*:*:*:users' ignored-patterns \
|
|||
# ... unless we really want to.
|
||||
zstyle '*' single-ignored show
|
||||
|
||||
if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then
|
||||
expand-or-complete-with-dots() {
|
||||
echo -n "\e[31m......\e[0m"
|
||||
zle expand-or-complete
|
||||
zle redisplay
|
||||
}
|
||||
zle -N expand-or-complete-with-dots
|
||||
bindkey "^I" expand-or-complete-with-dots
|
||||
fi
|
||||
|
|
|
|||
3
lib/edit-command-line.zsh
Normal file
3
lib/edit-command-line.zsh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
autoload -U edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '\C-x\C-e' edit-command-line
|
||||
|
|
@ -3,45 +3,15 @@ function zsh_stats() {
|
|||
}
|
||||
|
||||
function uninstall_oh_my_zsh() {
|
||||
/bin/sh $ZSH/tools/uninstall.sh
|
||||
/usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
|
||||
}
|
||||
|
||||
function upgrade_oh_my_zsh() {
|
||||
/bin/sh $ZSH/tools/upgrade.sh
|
||||
/usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
|
||||
}
|
||||
|
||||
function extract() {
|
||||
unset REMOVE_ARCHIVE
|
||||
|
||||
if test "$1" = "-r"; then
|
||||
REMOVE=1
|
||||
shift
|
||||
fi
|
||||
if [[ -f $1 ]]; then
|
||||
case $1 in
|
||||
*.tar.bz2) tar xvjf $1;;
|
||||
*.tar.gz) tar xvzf $1;;
|
||||
*.tar.xz) tar xvJf $1;;
|
||||
*.tar.lzma) tar --lzma -xvf $1;;
|
||||
*.bz2) bunzip $1;;
|
||||
*.rar) unrar x $1;;
|
||||
*.gz) gunzip $1;;
|
||||
*.tar) tar xvf $1;;
|
||||
*.tbz2) tar xvjf $1;;
|
||||
*.tgz) tar xvzf $1;;
|
||||
*.zip) unzip $1;;
|
||||
*.Z) uncompress $1;;
|
||||
*.7z) 7z x $1;;
|
||||
*) echo "'$1' cannot be extracted via >extract<";;
|
||||
esac
|
||||
|
||||
if [[ $REMOVE_ARCHIVE -eq 1 ]]; then
|
||||
echo removing "$1";
|
||||
/bin/rm "$1";
|
||||
fi
|
||||
|
||||
else
|
||||
echo "'$1' is not a valid file"
|
||||
fi
|
||||
function take() {
|
||||
mkdir -p $1
|
||||
cd $1
|
||||
}
|
||||
|
||||
|
|
|
|||
32
lib/git.zsh
32
lib/git.zsh
|
|
@ -4,19 +4,12 @@ function git_prompt_info() {
|
|||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
}
|
||||
|
||||
parse_git_dirty () {
|
||||
gitstat=$(git status 2>/dev/null | grep '\(# Untracked\|# Changes\|# Changed but not updated:\)')
|
||||
|
||||
if [[ $(echo ${gitstat} | grep -c "^# Changes to be committed:$") > 0 ]]; then
|
||||
echo -n "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||
fi
|
||||
|
||||
if [[ $(echo ${gitstat} | grep -c "^\(# Untracked files:\|# Changed but not updated:\)$") > 0 ]]; then
|
||||
echo -n "$ZSH_THEME_GIT_PROMPT_UNTRACKED"
|
||||
fi
|
||||
|
||||
if [[ $(echo ${gitstat} | grep -v '^$' | wc -l | tr -d ' ') == 0 ]]; then
|
||||
echo -n "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
# Checks if working tree is dirty
|
||||
parse_git_dirty() {
|
||||
if [[ -n $(git status -s --ignore-submodules=dirty 2> /dev/null) ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -27,15 +20,6 @@ function git_prompt_ahead() {
|
|||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Will return the current branch name
|
||||
# Usage example: git pull origin $(current_branch)
|
||||
#
|
||||
function current_branch() {
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
||||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
# Formats prompt string for current git commit short SHA
|
||||
function git_prompt_short_sha() {
|
||||
SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||
|
|
@ -68,7 +52,9 @@ git_prompt_status() {
|
|||
if $(echo "$INDEX" | grep '^R ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^D ' &> /dev/null); then
|
||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||
fi
|
||||
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -14,13 +14,19 @@ bindkey '^[[B' down-line-or-search
|
|||
|
||||
bindkey "^[[H" beginning-of-line
|
||||
bindkey "^[[1~" beginning-of-line
|
||||
bindkey "^[OH" beginning-of-line
|
||||
bindkey "^[[F" end-of-line
|
||||
bindkey "^[[4~" end-of-line
|
||||
bindkey "^[OF" end-of-line
|
||||
bindkey ' ' magic-space # also do history expansion on space
|
||||
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;5D" backward-word
|
||||
|
||||
bindkey '^[[Z' reverse-menu-complete
|
||||
|
||||
# Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~
|
||||
bindkey '^?' backward-delete-char
|
||||
bindkey "^[[3~" delete-char
|
||||
bindkey "^[3;5~" delete-char
|
||||
bindkey "\e[3~" delete-char
|
||||
|
|
|
|||
48
lib/misc.zsh
48
lib/misc.zsh
|
|
@ -10,49 +10,5 @@ bindkey "^[m" copy-prev-shell-word
|
|||
setopt long_list_jobs
|
||||
|
||||
## pager
|
||||
export PAGER='less -R'
|
||||
export LC_CTYPE=en_US.UTF-8
|
||||
|
||||
## pretty man pages
|
||||
function pman() {
|
||||
man $1 -t | open -f -a Preview
|
||||
}
|
||||
#
|
||||
## pretty JSON
|
||||
function pj() {
|
||||
python -mjson.tool
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
## Open current directory
|
||||
alias oo='open .'
|
||||
|
||||
## Quick-look a file (^C to close)
|
||||
alias ql='qlmanage -p 2>/dev/null'
|
||||
|
||||
## Start a local SMTP server and dump emails sent to it to the console
|
||||
alias smtpconsole='python -m smtpd -n -c DebuggingServer localhost:1025'
|
||||
|
||||
## Serve the current folder on port 80
|
||||
alias serve_this='python -m SimpleHTTPServer'
|
||||
|
||||
## Highlight-aware less command
|
||||
alias hl='less -R'
|
||||
|
||||
## Show history
|
||||
alias history='fc -l 1'
|
||||
|
||||
## Color grep results
|
||||
## Examples: http://rubyurl.com/ZXv
|
||||
export GREP_OPTIONS='--color=auto'
|
||||
export GREP_COLOR='1;32'
|
||||
|
||||
# Quick and dirty encryption
|
||||
function encrypt() {
|
||||
openssl des3 -a -in $1 -out $1.des3
|
||||
}
|
||||
function decrypt() {
|
||||
openssl des3 -d -a -in $1 -out ${1%.des3}
|
||||
}
|
||||
export PAGER=less
|
||||
export LC_CTYPE=$LANG
|
||||
|
|
|
|||
|
|
@ -18,3 +18,11 @@ for color in {000..255}; do
|
|||
FG[$color]="%{[38;5;${color}m%}"
|
||||
BG[$color]="%{[48;5;${color}m%}"
|
||||
done
|
||||
|
||||
# Show all 256 colors with color number
|
||||
function spectrum_ls() {
|
||||
for code in {000..255}; do
|
||||
print -P -- "$code: %F{$code}Test%f"
|
||||
done
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue