summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/aliases.zsh1
-rw-r--r--lib/completion.zsh2
-rw-r--r--lib/correction.zsh20
-rw-r--r--lib/directories.zsh1
-rw-r--r--lib/functions.zsh6
-rw-r--r--lib/git.zsh16
-rw-r--r--lib/grep.zsh23
-rw-r--r--lib/key-bindings.zsh4
-rw-r--r--lib/termsupport.zsh10
9 files changed, 51 insertions, 32 deletions
diff --git a/lib/aliases.zsh b/lib/aliases.zsh
index 3044c9660..aae865046 100644
--- a/lib/aliases.zsh
+++ b/lib/aliases.zsh
@@ -30,7 +30,6 @@ alias lsa='ls -lah'
alias l='ls -lah'
alias ll='ls -lh'
alias la='ls -lAh'
-alias sl=ls # often screw this up
alias afind='ack-grep -il'
diff --git a/lib/completion.zsh b/lib/completion.zsh
index c54249c52..fa1d97f48 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -44,7 +44,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \
named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \
operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \
rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \
- usbmux uucp vcsa wwwrun xfs
+ usbmux uucp vcsa wwwrun xfs '_*'
# ... unless we really want to.
zstyle '*' single-ignored show
diff --git a/lib/correction.zsh b/lib/correction.zsh
index 47eb83b1d..3e1415a0b 100644
--- a/lib/correction.zsh
+++ b/lib/correction.zsh
@@ -1,13 +1,13 @@
-alias man='nocorrect man'
-alias mv='nocorrect mv'
-alias mysql='nocorrect mysql'
-alias mkdir='nocorrect mkdir'
-alias gist='nocorrect gist'
-alias heroku='nocorrect heroku'
-alias ebuild='nocorrect ebuild'
-alias hpodder='nocorrect hpodder'
-alias sudo='nocorrect sudo'
-
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
+ alias ebuild='nocorrect ebuild'
+ alias gist='nocorrect gist'
+ alias heroku='nocorrect heroku'
+ alias hpodder='nocorrect hpodder'
+ alias man='nocorrect man'
+ alias mkdir='nocorrect mkdir'
+ alias mv='nocorrect mv'
+ alias mysql='nocorrect mysql'
+ alias sudo='nocorrect sudo'
+
setopt correct_all
fi
diff --git a/lib/directories.zsh b/lib/directories.zsh
index 1896945f4..02743e0c7 100644
--- a/lib/directories.zsh
+++ b/lib/directories.zsh
@@ -1,5 +1,4 @@
# Changing/making/removing directory
-setopt auto_name_dirs
setopt auto_pushd
setopt pushd_ignore_dups
setopt pushdminus
diff --git a/lib/functions.zsh b/lib/functions.zsh
index aaf8a03e3..17f5f9cbf 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -1,13 +1,13 @@
function zsh_stats() {
- history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
+ fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
}
function uninstall_oh_my_zsh() {
- /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
+ env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
}
function upgrade_oh_my_zsh() {
- /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
+ env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
}
function take() {
diff --git a/lib/git.zsh b/lib/git.zsh
index 305a77aff..e1ca9b113 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -1,8 +1,8 @@
# get the name of the branch we are on
function git_prompt_info() {
- if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then
+ if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
- ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
+ ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
fi
}
@@ -13,7 +13,7 @@ parse_git_dirty() {
local SUBMODULE_SYNTAX=''
local GIT_STATUS=''
local CLEAN_MESSAGE='nothing to commit (working directory clean)'
- if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
+ if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
fi
@@ -54,11 +54,19 @@ git_remote_status() {
# Checks if there are commits ahead from remote
function git_prompt_ahead() {
- if $(echo "$(command git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
+ if $(echo "$(command git log @{upstream}..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
fi
}
+# Gets the number of commits ahead from remote
+function git_commits_ahead() {
+ if $(echo "$(command git log @{upstream}..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
+ COMMITS=$(command git log @{upstream}..HEAD | grep '^commit' | wc -l | tr -d ' ')
+ echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$COMMITS$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
+ fi
+}
+
# Formats prompt string for current git commit short SHA
function git_prompt_short_sha() {
SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
diff --git a/lib/grep.zsh b/lib/grep.zsh
index 977435ee4..276fec382 100644
--- a/lib/grep.zsh
+++ b/lib/grep.zsh
@@ -3,11 +3,22 @@
# Examples: http://rubyurl.com/ZXv
#
-# avoid VCS folders
-GREP_OPTIONS=
-for PATTERN in .cvs .git .hg .svn; do
- GREP_OPTIONS+="--exclude-dir=$PATTERN "
-done
-GREP_OPTIONS+="--color=auto"
+GREP_OPTIONS="--color=auto"
+
+# avoid VCS folders (if the necessary grep flags are available)
+grep-flag-available() {
+ echo | grep $1 "" >/dev/null 2>&1
+}
+if grep-flag-available --exclude-dir=.cvs; then
+ for PATTERN in .cvs .git .hg .svn; do
+ GREP_OPTIONS+=" --exclude-dir=$PATTERN"
+ done
+elif grep-flag-available --exclude=.cvs; then
+ for PATTERN in .cvs .git .hg .svn; do
+ GREP_OPTIONS+=" --exclude=$PATTERN"
+ done
+fi
+unfunction grep-flag-available
+
export GREP_OPTIONS="$GREP_OPTIONS"
export GREP_COLOR='1;32'
diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
index 5f3f237c7..9063c6a18 100644
--- a/lib/key-bindings.zsh
+++ b/lib/key-bindings.zsh
@@ -46,8 +46,8 @@ bindkey ' ' magic-space # [Space] - do history exp
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
-if [[ "${terminfo[kdch1]}" != "" ]]; then
- bindkey "${terminfo[kdch1]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards
+if [[ "${terminfo[kcbt]}" != "" ]]; then
+ bindkey "${terminfo[kcbt]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards
fi
bindkey '^?' backward-delete-char # [Backspace] - delete backward
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index 5f2fe63d4..9d6681603 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -26,11 +26,13 @@ function omz_termsupport_precmd {
function omz_termsupport_preexec {
emulate -L zsh
setopt extended_glob
- local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
+
+ # cmd name only, or if this is sudo or ssh, the next cmd
+ local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%}
local LINE="${2:gs/%/%%}"
+
title '$CMD' '%100>...>$LINE%<<'
}
-autoload -U add-zsh-hook
-add-zsh-hook precmd omz_termsupport_precmd
-add-zsh-hook preexec omz_termsupport_preexec
+precmd_functions+=(omz_termsupport_precmd)
+preexec_functions+=(omz_termsupport_preexec)