diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/correction.zsh | 22 | ||||
-rw-r--r-- | lib/directories.zsh | 20 | ||||
-rw-r--r-- | lib/git.zsh | 15 | ||||
-rw-r--r-- | lib/history.zsh | 4 | ||||
-rw-r--r-- | lib/termsupport.zsh | 2 | ||||
-rw-r--r-- | lib/theme-and-appearance.zsh | 8 |
6 files changed, 48 insertions, 23 deletions
diff --git a/lib/correction.zsh b/lib/correction.zsh index fc60dcdbd..07fbcfd36 100644 --- a/lib/correction.zsh +++ b/lib/correction.zsh @@ -1,10 +1,14 @@ -setopt correct_all +if [[ "$DISABLE_CORRECTION" == "true" ]]; then + return +else + setopt correct_all -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 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' +fi diff --git a/lib/directories.zsh b/lib/directories.zsh index 6c743e40e..1896945f4 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -2,6 +2,7 @@ setopt auto_name_dirs setopt auto_pushd setopt pushd_ignore_dups +setopt pushdminus alias ..='cd ..' alias cd..='cd ..' @@ -11,14 +12,14 @@ alias cd.....='cd ../../../..' alias cd/='cd /' alias 1='cd -' -alias 2='cd +2' -alias 3='cd +3' -alias 4='cd +4' -alias 5='cd +5' -alias 6='cd +6' -alias 7='cd +7' -alias 8='cd +8' -alias 9='cd +9' +alias 2='cd -2' +alias 3='cd -3' +alias 4='cd -4' +alias 5='cd -5' +alias 6='cd -6' +alias 7='cd -7' +alias 8='cd -8' +alias 9='cd -9' cd () { if [[ "x$*" == "x..." ]]; then @@ -29,6 +30,9 @@ cd () { cd ../../../.. elif [[ "x$*" == "x......" ]]; then cd ../../../../.. + elif [ -d ~/.autoenv ]; then + source ~/.autoenv/activate.sh + autoenv_cd "$@" else builtin cd "$@" fi diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..96598cf5f 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -9,15 +9,24 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { local SUBMODULE_SYNTAX='' + local GIT_STATUS='' + local CLEAN_MESSAGE='nothing to commit (working directory clean)' if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi - if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then + if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" != "true" ]]; then + GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) + else + GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1) + fi + if [[ -n $(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi + else + echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi } @@ -62,7 +71,7 @@ function git_prompt_long_sha() { git_prompt_status() { INDEX=$(git status --porcelain -b 2> /dev/null) STATUS="" - if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then + if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" fi if $(echo "$INDEX" | grep '^A ' &> /dev/null); then @@ -112,7 +121,7 @@ function git_compare_version() { local INPUT_GIT_VERSION=$1; local INSTALLED_GIT_VERSION INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); - INSTALLED_GIT_VERSION=($(git --version)); + INSTALLED_GIT_VERSION=($(git --version 2>/dev/null)); INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); for i in {1..3}; do diff --git a/lib/history.zsh b/lib/history.zsh index 876936b87..655945166 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,5 +1,7 @@ ## Command history configuration -HISTFILE=$HOME/.zsh_history +if [ -z $HISTFILE ]; then + HISTFILE=$HOME/.zsh_history +fi HISTSIZE=10000 SAVEHIST=10000 diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index c056989eb..e3828da14 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -8,7 +8,7 @@ function title { fi 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 + elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ $TERM == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) fi diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index aec67721a..2677615c0 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -7,7 +7,13 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad" if [ "$DISABLE_LS_COLORS" != "true" ] then # Find the option for using colors in ls, depending on the version: Linux or BSD - ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + if [[ "$(uname -s)" == "NetBSD" ]]; then + # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); + # otherwise, leave ls as is, because NetBSD's ls doesn't support -G + gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' + else + ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + fi fi #setopt no_beep |