diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2018-04-25 15:36:48 -0600 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2018-04-25 15:36:48 -0600 |
commit | 1481f7aa67df42bdf45953231637194ac200d240 (patch) | |
tree | 7d41eb6b369e3ab0f25753623c966b69340e54cf /lib | |
parent | b7b623d6de696b81d213ec666d072851561d5c06 (diff) | |
parent | 9cd3701ac0297f4bdf9673ea0dffa8ffdaea63e8 (diff) | |
download | zsh-1481f7aa67df42bdf45953231637194ac200d240.tar.gz zsh-1481f7aa67df42bdf45953231637194ac200d240.tar.bz2 zsh-1481f7aa67df42bdf45953231637194ac200d240.zip |
Merge branch 'master' of https://github.com/robbyrussell/oh-my-zsh
Diffstat (limited to 'lib')
-rw-r--r-- | lib/functions.zsh | 4 | ||||
-rw-r--r-- | lib/git.zsh | 8 | ||||
-rw-r--r-- | lib/history.zsh | 55 |
3 files changed, 43 insertions, 24 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh index f30653784..7410ae645 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -25,7 +25,9 @@ function open_command() { case "$OSTYPE" in darwin*) open_cmd='open' ;; cygwin*) open_cmd='cygstart' ;; - linux*) open_cmd='xdg-open' ;; + linux*) [[ $(uname -a) =~ "Microsoft" ]] && \ + open_cmd='cmd.exe /c start' || \ + open_cmd='xdg-open' ;; msys*) open_cmd='start ""' ;; *) echo "Platform $OSTYPE not supported" return 1 diff --git a/lib/git.zsh b/lib/git.zsh index 9b0f6e36f..b55b762d7 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -77,8 +77,8 @@ function git_current_branch() { # Gets the number of commits ahead from remote function git_commits_ahead() { if command git rev-parse --git-dir &>/dev/null; then - local commits="$(git rev-list --count @{upstream}..HEAD)" - if [[ "$commits" != 0 ]]; then + local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)" + if [[ -n "$commits" && "$commits" != 0 ]]; then echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" fi fi @@ -87,8 +87,8 @@ function git_commits_ahead() { # Gets the number of commits behind remote function git_commits_behind() { if command git rev-parse --git-dir &>/dev/null; then - local commits="$(git rev-list --count HEAD..@{upstream})" - if [[ "$commits" != 0 ]]; then + local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)" + if [[ -n "$commits" && "$commits" != 0 ]]; then echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX" fi fi diff --git a/lib/history.zsh b/lib/history.zsh index 5de71c2d3..7d4e59d00 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,24 +1,41 @@ -## Command history configuration -if [ -z "$HISTFILE" ]; then - HISTFILE=$HOME/.zsh_history -fi +## History wrapper +function omz_history { + # Delete the history file if `-c' argument provided. + # This won't affect the `history' command output until the next login. + zparseopts -E c=clear l=list -HISTSIZE=10000 -SAVEHIST=10000 + if [[ -n "$clear" ]]; then + # if -c provided, clobber the history file + echo -n >| "$HISTFILE" + echo >&2 History file deleted. Reload the session to see its effects. + elif [[ -n "$list" ]]; then + # if -l provided, run as if calling `fc' directly + builtin fc "$@" + else + # otherwise, call `fc -l 1` to show all available + # history (and pass additional parameters) + builtin fc "$@" -l 1 + fi +} -# Show history +# Timestamp format case $HIST_STAMPS in - "mm/dd/yyyy") alias history='fc -fl 1' ;; - "dd.mm.yyyy") alias history='fc -El 1' ;; - "yyyy-mm-dd") alias history='fc -il 1' ;; - *) alias history='fc -l 1' ;; + "mm/dd/yyyy") alias history='omz_history -f' ;; + "dd.mm.yyyy") alias history='omz_history -E' ;; + "yyyy-mm-dd") alias history='omz_history -i' ;; + *) alias history='omz_history' ;; esac -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 hist_verify -setopt inc_append_history -setopt share_history # share command history data +## History file configuration +[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history" +HISTSIZE=50000 +SAVEHIST=10000 + +## History command configuration +setopt extended_history # record timestamp of command in HISTFILE +setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE +setopt hist_ignore_dups # ignore duplicated commands history list +setopt hist_ignore_space # ignore commands that start with space +setopt hist_verify # show command with history expansion to user before running it +setopt inc_append_history # add commands to HISTFILE in order of execution +setopt share_history # share command history data |