diff --git a/.config/zsh/include/theme b/.config/zsh/include/theme index 679a687..909b307 100644 --- a/.config/zsh/include/theme +++ b/.config/zsh/include/theme @@ -1,4 +1,5 @@ #!/bin/env zsh + autoload -Uz vcs_info precmd_vcs_info() { vcs_info } precmd_functions+=( precmd_vcs_info ) @@ -10,36 +11,30 @@ zstyle ':vcs_info:git:*' formats '%F{5} %b %F{1}%c%u %f' zstyle ':vcs_info:git*+set-message:*' hooks git-untracked zstyle ':vcs_info:*' enable git +vi-git-untracked() { + # Return early if we're not in git dir + [ $(git rev-parse --is-inside-work-tree 2> /dev/null) = 'true' ] || return 0 # git status ahead - if [[ $(git status --porcelain -b | grep '^## [^ ]\+ .*ahead') ]]; then + [ $(git status --porcelain -b | grep '^## [^ ]\+ .*ahead') ] && \ hook_com[unstaged]+='%F{1}⇡%f' - fi # git untracked - if [ $(git rev-parse --is-inside-work-tree 2> /dev/null) = 'true' ] && \ - [ $(git ls-files --other --directory --exclude-standard --no-empty-directory | sed q | wc -l | tr -d ' ') = 1 ] ; then + [ $(git ls-files --other --directory --exclude-standard --no-empty-directory | sed q | wc -l | tr -d ' ') = 1 ] && \ hook_com[unstaged]+='%F{1}?%f' - fi } function zle-line-init zle-keymap-select { - PS1=" + PS1=""" %B%F{blue}%~ \$vcs_info_msg_0_ -%F{green}${${KEYMAP/vicmd/N }/(main|viins)/}$>%f%b " +%F{green}${${KEYMAP/vicmd/N }/(main|viins)/}$>%f%b """ PS2="%B%F{blue}?>%f%b " - # RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" - # RPS2=$RPS1 + # RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" + # RPS2=$RPS1 - if [[ ${KEYMAP} == vicmd ]] || - [[ $1 = 'block' ]]; then - echo -ne '\e[1 q' - - elif [[ ${KEYMAP} == main ]] || - [[ ${KEYMAP} == viins ]] || - [[ ${KEYMAP} = '' ]] || - [[ $1 = 'beam' ]]; then - echo -ne '\e[5 q' + if [[ ${KEYMAP} == vicmd ]] || [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ ${KEYMAP} == main ]] || [[ ${KEYMAP} == viins ]] || [[ ${KEYMAP} = '' ]] || [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' fi zle reset-prompt @@ -48,7 +43,7 @@ zle -N zle-line-init zle -N zle-keymap-select _fix_cursor() { - echo -ne '\e[5 q' + echo -ne '\e[5 q' } precmd () {