mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-29 01:00:08 +00:00
Merge pull request #706 from docwhat/termsupport-hook
lib/termsupport now uses add-zsh-hook
This commit is contained in:
commit
a9a0f58009
4 changed files with 32 additions and 18 deletions
|
@ -4,7 +4,7 @@
|
||||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||||
function title {
|
function title {
|
||||||
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
|
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
|
||||||
if [[ "$TERM" == screen* ]]; then
|
if [[ "$TERM" == screen* ]]; then
|
||||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
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_PROGRAM" == "iTerm.app" ]]; then
|
||||||
print -Pn "\e]2;$2:q\a" #set window name
|
print -Pn "\e]2;$2:q\a" #set window name
|
||||||
|
@ -16,14 +16,18 @@ ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
||||||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
||||||
|
|
||||||
#Appears when you have the prompt
|
#Appears when you have the prompt
|
||||||
function precmd {
|
function omz_termsupport_precmd {
|
||||||
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
||||||
}
|
}
|
||||||
|
|
||||||
#Appears at the beginning of (and during) of command execution
|
#Appears at the beginning of (and during) of command execution
|
||||||
function preexec {
|
function omz_termsupport_preexec {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt extended_glob
|
setopt extended_glob
|
||||||
local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
||||||
title "$CMD" "%100>...>$2%<<"
|
title "$CMD" "%100>...>$2%<<"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd omz_termsupport_precmd
|
||||||
|
add-zsh-hook preexec omz_termsupport_preexec
|
||||||
|
|
|
@ -2,7 +2,7 @@ function toon {
|
||||||
echo -n ""
|
echo -n ""
|
||||||
}
|
}
|
||||||
|
|
||||||
get_git_dirty() {
|
get_git_dirty() {
|
||||||
git diff --quiet || echo '*'
|
git diff --quiet || echo '*'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats \
|
||||||
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
|
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
|
||||||
zstyle ':vcs_info:*' enable git cvs svn
|
zstyle ':vcs_info:*' enable git cvs svn
|
||||||
|
|
||||||
precmd () {
|
theme_precmd () {
|
||||||
vcs_info
|
vcs_info
|
||||||
}
|
}
|
||||||
|
|
||||||
setopt prompt_subst
|
setopt prompt_subst
|
||||||
PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'
|
PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd theme_precmd
|
|
@ -1,19 +1,19 @@
|
||||||
function precmd {
|
function theme_precmd {
|
||||||
local TERMWIDTH
|
local TERMWIDTH
|
||||||
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Truncate the path if it's too long.
|
# Truncate the path if it's too long.
|
||||||
|
|
||||||
PR_FILLBAR=""
|
PR_FILLBAR=""
|
||||||
PR_PWDLEN=""
|
PR_PWDLEN=""
|
||||||
|
|
||||||
local promptsize=${#${(%):---(%n@%m:%l)---()--}}
|
local promptsize=${#${(%):---(%n@%m:%l)---()--}}
|
||||||
local rubyprompt=`rvm_prompt_info`
|
local rubyprompt=`rvm_prompt_info`
|
||||||
local rubypromptsize=${#${rubyprompt}}
|
local rubypromptsize=${#${rubyprompt}}
|
||||||
local pwdsize=${#${(%):-%~}}
|
local pwdsize=${#${(%):-%~}}
|
||||||
|
|
||||||
if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
|
if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
|
||||||
((PR_PWDLEN=$TERMWIDTH - $promptsize))
|
((PR_PWDLEN=$TERMWIDTH - $promptsize))
|
||||||
else
|
else
|
||||||
|
@ -24,7 +24,7 @@ function precmd {
|
||||||
|
|
||||||
|
|
||||||
setopt extended_glob
|
setopt extended_glob
|
||||||
preexec () {
|
theme_preexec () {
|
||||||
if [[ "$TERM" == "screen" ]]; then
|
if [[ "$TERM" == "screen" ]]; then
|
||||||
local CMD=${1[(wr)^(*=*|sudo|-*)]}
|
local CMD=${1[(wr)^(*=*|sudo|-*)]}
|
||||||
echo -n "\ek$CMD\e\\"
|
echo -n "\ek$CMD\e\\"
|
||||||
|
@ -69,7 +69,7 @@ setprompt () {
|
||||||
|
|
||||||
###
|
###
|
||||||
# See if we can use extended characters to look nicer.
|
# See if we can use extended characters to look nicer.
|
||||||
|
|
||||||
typeset -A altchar
|
typeset -A altchar
|
||||||
set -A altchar ${(s..)terminfo[acsc]}
|
set -A altchar ${(s..)terminfo[acsc]}
|
||||||
PR_SET_CHARSET="%{$terminfo[enacs]%}"
|
PR_SET_CHARSET="%{$terminfo[enacs]%}"
|
||||||
|
@ -81,10 +81,10 @@ setprompt () {
|
||||||
PR_LRCORNER=${altchar[j]:--}
|
PR_LRCORNER=${altchar[j]:--}
|
||||||
PR_URCORNER=${altchar[k]:--}
|
PR_URCORNER=${altchar[k]:--}
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Decide if we need to set titlebar text.
|
# Decide if we need to set titlebar text.
|
||||||
|
|
||||||
case $TERM in
|
case $TERM in
|
||||||
xterm*)
|
xterm*)
|
||||||
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
|
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
|
||||||
|
@ -96,8 +96,8 @@ setprompt () {
|
||||||
PR_TITLEBAR=''
|
PR_TITLEBAR=''
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Decide whether to set a screen title
|
# Decide whether to set a screen title
|
||||||
if [[ "$TERM" == "screen" ]]; then
|
if [[ "$TERM" == "screen" ]]; then
|
||||||
|
@ -105,8 +105,8 @@ setprompt () {
|
||||||
else
|
else
|
||||||
PR_STITLE=''
|
PR_STITLE=''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Finally, the prompt.
|
# Finally, the prompt.
|
||||||
|
|
||||||
|
@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
|
||||||
}
|
}
|
||||||
|
|
||||||
setprompt
|
setprompt
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd theme_precmd
|
||||||
|
add-zsh-hook preexec theme_preexec
|
|
@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
|
||||||
zstyle ':vcs_info:*' check-for-changes true
|
zstyle ':vcs_info:*' check-for-changes true
|
||||||
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
|
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
|
||||||
zstyle ':vcs_info:*' enable git svn
|
zstyle ':vcs_info:*' enable git svn
|
||||||
precmd () {
|
theme_precmd () {
|
||||||
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
|
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
|
||||||
zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
|
zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
|
||||||
} else {
|
} else {
|
||||||
|
@ -19,3 +19,6 @@ precmd () {
|
||||||
|
|
||||||
setopt prompt_subst
|
setopt prompt_subst
|
||||||
PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
|
PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd theme_precmd
|
||||||
|
|
Loading…
Reference in a new issue