From 12324856c6645c2e71c4dfcf5ef12313c989b387 Mon Sep 17 00:00:00 2001 From: Andrea De Pasquale Date: Tue, 24 Sep 2013 11:11:35 +0200 Subject: Added ssh-like mosh window title Display the hostname when running Mosh (http://mosh.mit.edu/). Same thing as displaying "hostname" when running "ssh hostname". --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 9c0a430fb..30410c1fd 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -28,7 +28,7 @@ function omz_termsupport_preexec { setopt extended_glob # cmd name only, or if this is sudo or ssh, the next cmd - local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%} + local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%} local LINE="${2:gs/%/%%}" title '$CMD' '%100>...>$LINE%<<' -- cgit v1.2.3-70-g09d2 From f2130fa1a3f440418a6c48f9bace43ce7443117f Mon Sep 17 00:00:00 2001 From: The Linux Kitten Date: Mon, 2 Feb 2015 20:49:24 +0100 Subject: Test if --color=auto is a valid option for grep --- lib/grep.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/grep.zsh b/lib/grep.zsh index 348ebe623..3fa103d19 100644 --- a/lib/grep.zsh +++ b/lib/grep.zsh @@ -3,8 +3,12 @@ grep-flag-available() { echo | grep $1 "" >/dev/null 2>&1 } +GREP_OPTIONS="" + # color grep results -GREP_OPTIONS="--color=auto" +if grep-flag-available --color=auto; then + GREP_OPTIONS+=" --color=auto" +fi # ignore VCS folders (if the necessary grep flags are available) VCS_FOLDERS="{.bzr,.cvs,.git,.hg,.svn}" -- cgit v1.2.3-70-g09d2 From 2790a5e565ecf1a695c25c7ef0d5aa23f8bb5239 Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Sun, 15 Feb 2015 11:37:28 -0800 Subject: Bring back -h option to ls variants The -h options in l, ll, and la were lost in 25b1cd6. There's no reason to remove them. --- lib/directories.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/directories.zsh b/lib/directories.zsh index 1a9698544..3bffa9fd9 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -24,9 +24,9 @@ alias d='dirs -v | head -10' # List directory contents alias lsa='ls -lah' -alias l='ls -la' -alias ll='ls -l' -alias la='ls -lA' +alias l='ls -lah' +alias ll='ls -lh' +alias la='ls -lAh' # Push and pop directories on directory stack alias pu='pushd' -- cgit v1.2.3-70-g09d2 From 6ccf67a077e07bc57cdca6980dcdf346cbd2138e Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Mon, 16 Feb 2015 10:24:22 -0500 Subject: Do not put explicit dot in $cdpath, since it causes problems on Cygwin due to an underlying zsh bug. --- lib/completion.zsh | 1 - 1 file changed, 1 deletion(-) (limited to 'lib') diff --git a/lib/completion.zsh b/lib/completion.zsh index ea6139fde..4b1bb0a62 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -34,7 +34,6 @@ fi # disable named-directories autocompletion zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories -cdpath=(.) # Use caching so that commands like apt and dpkg complete are useable zstyle ':completion::complete:*' use-cache 1 -- cgit v1.2.3-70-g09d2 From 66052e2d07fc4e6205bf7f14adfa12d53d9ad487 Mon Sep 17 00:00:00 2001 From: Jordan Klassen Date: Wed, 29 Apr 2015 15:37:39 -0700 Subject: Add hyphen insensitivity --- lib/completion.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/completion.zsh b/lib/completion.zsh index 4b1bb0a62..452c0dfe7 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -15,7 +15,12 @@ if [ "x$CASE_SENSITIVE" = "xtrue" ]; then zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' unset CASE_SENSITIVE else - zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + if [ "x$HYPHEN_INSENSITIVE" = "xtrue" ]; then + zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + unset HYPHEN_INSENSITIVE + else + zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + fi fi zstyle ':completion:*' list-colors '' -- cgit v1.2.3-70-g09d2 From 16535452829d36f5382b176216a9ad312b2be1e5 Mon Sep 17 00:00:00 2001 From: Tejas Bubane Date: Tue, 23 Dec 2014 12:48:09 +0530 Subject: Recognize comments by default. --- lib/misc.zsh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/misc.zsh b/lib/misc.zsh index 0b7cb2696..c9a8e9e8f 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -20,3 +20,6 @@ alias afind='ack-grep -il' if [[ -z "$LC_CTYPE" && -z "$LC_ALL" ]]; then export LC_CTYPE=${LANG%%:*} # pick the first entry from LANG fi + +# recognize comments +setopt interactivecomments -- cgit v1.2.3-70-g09d2 From 70c4a27fd6048c3213dd2f3bae21bff26005bc16 Mon Sep 17 00:00:00 2001 From: "leif.hanack" Date: Wed, 4 Jun 2014 00:37:33 +0200 Subject: Added a possibility to display the remote branch and the number of commits you are ahead or behind --- lib/git.zsh | 20 +++++++++++++++----- themes/strug.zsh-theme | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 themes/strug.zsh-theme (limited to 'lib') diff --git a/lib/git.zsh b/lib/git.zsh index 118841f06..733492ba0 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -36,16 +36,26 @@ git_remote_status() { ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) - if [ $ahead -eq 0 ] && [ $behind -gt 0 ] + if [ $ahead -gt 0 ] && [ $behind -eq 0 ] then - echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" - elif [ $ahead -gt 0 ] && [ $behind -eq 0 ] + git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}" + elif [ $behind -gt 0 ] && [ $ahead -eq 0 ] then - echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" + git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" elif [ $ahead -gt 0 ] && [ $behind -gt 0 ] then - echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" + git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" + git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" fi + + if [ $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ] + then + git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" + fi + + echo $git_remote_status fi } diff --git a/themes/strug.zsh-theme b/themes/strug.zsh-theme new file mode 100644 index 000000000..89b56b008 --- /dev/null +++ b/themes/strug.zsh-theme @@ -0,0 +1,25 @@ +# terminal coloring +export CLICOLOR=1 +export LSCOLORS=dxFxCxDxBxegedabagacad + +local git_branch='$(git_prompt_info)%{$reset_color%}$(git_remote_status)' + +PROMPT="%{$fg[green]%}╭─%n@%m %{$reset_color%}%{$fg[yellow]%}in %~ %{$reset_color%}${git_branch} +%{$fg[green]%}╰\$ %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[yellow]%}on " +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_DIRTY="%{$reset_color%}%{$fg[red]%} ✘ %{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%} ✔ %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED=true +ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX="%{$fg[yellow]%}(" +ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX="%{$fg[yellow]%})%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE=" +" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR=%{$fg[green]%} + +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE=" -" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR=%{$fg[red]%} + -- cgit v1.2.3-70-g09d2 From 2d40cc0bb315a92368e35c15c92f955bd901c7c3 Mon Sep 17 00:00:00 2001 From: Adam Lindberg Date: Wed, 16 Apr 2014 10:34:45 +0200 Subject: Add git_prompt_behind and git_prompt_exists This adds two new theme functions for git: * `git_prompt_behind` works in a identical fashion to `git_prompt_ahead` and will output a format variable (`ZSH_THEME_GIT_PROMPT_BEHIND`) if the branch is behind. * `git_prompt_remote` will output one format variable if the branch exists on remote (`ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS`), and another if the branch is unpublished (`ZSH_THEME_GIT_PROMPT_REMOTE_MISSING`). The old `git_prompt_ahead` has been changed. Using git log is subject to formatting in .gitconfig, which can be overridden and will break this function. Relying on rev-list is much more stable. --- lib/git.zsh | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/git.zsh b/lib/git.zsh index 733492ba0..caa7e6329 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -59,13 +59,6 @@ git_remote_status() { fi } -# Checks if there are commits ahead from remote -function git_prompt_ahead() { - 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 @@ -74,6 +67,29 @@ function git_commits_ahead() { fi } +# Outputs if current branch is ahead of remote +function git_prompt_ahead() { + if [[ -n "$(command git rev-list origin/$(current_branch)..HEAD 2> /dev/null)" ]]; then + echo "$ZSH_THEME_GIT_PROMPT_AHEAD" + fi +} + +# Outputs if current branch is behind remote +function git_prompt_behind() { + if [[ -n "$(command git rev-list HEAD..origin/$(current_branch) 2> /dev/null)" ]]; then + echo "$ZSH_THEME_GIT_PROMPT_BEHIND" + fi +} + +# Outputs if current branch exists on remote or not +function git_prompt_remote() { + if [[ -n "$(command git show-ref origin/$(current_branch) 2> /dev/null)" ]]; then + echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS" + else + echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING" + 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" -- cgit v1.2.3-70-g09d2 From 2fb326513a9e2cec473cff88669da890ad4ae834 Mon Sep 17 00:00:00 2001 From: Dan Mills Date: Wed, 10 Jun 2015 15:49:47 -0700 Subject: Only load url-quote-magic if it is available. Partially fixes #3614 --- lib/misc.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/misc.zsh b/lib/misc.zsh index 0b7cb2696..92e336b64 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -1,6 +1,10 @@ -## smart urls -autoload -U url-quote-magic -zle -N self-insert url-quote-magic +## Load smart urls if available +for d in $fpath; do + if [[ -e "$d/url-quote-magic"]]; then + autoload -U url-quote-magic + zle -N self-insert url-quote-magic + fi +done ## jobs setopt long_list_jobs -- cgit v1.2.3-70-g09d2 From f66a54fb7862b396e3fc09e7041ca6fee4b42a4a Mon Sep 17 00:00:00 2001 From: Ali Afshar Date: Sun, 14 Jun 2015 22:29:11 -0700 Subject: Add missing space causing parse error. --- lib/misc.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/misc.zsh b/lib/misc.zsh index e90836475..6d1a64e8d 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -1,6 +1,6 @@ ## Load smart urls if available for d in $fpath; do - if [[ -e "$d/url-quote-magic"]]; then + if [[ -e "$d/url-quote-magic" ]]; then autoload -U url-quote-magic zle -N self-insert url-quote-magic fi -- cgit v1.2.3-70-g09d2 From 90ea67edf0982923f82905d87bda5b685089f219 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Fri, 31 Jul 2015 22:23:12 -0400 Subject: termsupport: protect title() with `emulate -L zsh` This prevents it from malfunctioning when `setopt prompt_subst` is off. --- lib/termsupport.zsh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e1c2e2f93..973c4dcf6 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -7,6 +7,9 @@ # (In screen, only short_tab_title is used) # Limited support for Apple Terminal (Terminal can't set window and tab separately) function title { + emulate -L zsh + setopt prompt_subst + [[ "$EMACS" == *term* ]] && return # if $2 is unset use $1 as default -- cgit v1.2.3-70-g09d2 From 2d0bfcf81846ea4cb0fe2a42f3dac7f2c60e77b7 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 5 Aug 2015 00:27:51 +0200 Subject: Implement cross-platform open function open_command() For now this supports: - Mac OS X - Linux (presumably works on all versions) - Cygwin (Windows) --- lib/functions.zsh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib') diff --git a/lib/functions.zsh b/lib/functions.zsh index 17f5f9cbf..0d632a268 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -15,6 +15,22 @@ function take() { cd $1 } +function open_command() { + local open_cmd + + # define the open command + case "$OSTYPE" in + darwin*) open_cmd="open" ;; + cygwin*) open_cmd="cygstart" ;; + linux*) open_cmd="xdg-open" ;; + *) echo "Platform $OSTYPE not supported" + return 1 + ;; + esac + + nohup $open_cmd "$@" &>/dev/null +} + # # Get the value of an alias. # -- cgit v1.2.3-70-g09d2 From 17da983442f8872e147381db215266735751abc8 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Sun, 9 Aug 2015 15:15:12 -0400 Subject: termsupport: avoid repeated dir in window title in Terminal.app --- lib/termsupport.zsh | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e1c2e2f93..ecca516f2 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -23,6 +23,10 @@ function title { ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" +# Avoid duplication of directory in terminals with independent dir display +if [[ $TERM_PROGRAM == Apple_Terminal ]]; then + ZSH_THEME_TERM_TITLE_IDLE="%n@%m" +fi # Runs before showing the prompt function omz_termsupport_precmd { -- cgit v1.2.3-70-g09d2