mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-13 03:01:32 +01:00
Terminal window and tab titles are correctly escaped. Also, files ending in ~ are gitignored
This commit is contained in:
parent
d485044169
commit
948f9b4441
2 changed files with 41 additions and 17 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,3 +7,4 @@ custom/*
|
||||||
*.swp
|
*.swp
|
||||||
!custom/example.zshcache
|
!custom/example.zshcache
|
||||||
cache/
|
cache/
|
||||||
|
*~
|
||||||
|
|
|
||||||
|
|
@ -3,33 +3,56 @@
|
||||||
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
||||||
#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 {
|
||||||
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
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 == ansi ]] || [[ "$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 -r "$2:q" 1>&2
|
||||||
print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
|
# print -r "$1:q" 1>&2
|
||||||
fi
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
||||||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
ZSH_THEME_TERM_TITLE_IDLE="%a@%m: %~"
|
||||||
|
|
||||||
#Appears when you have the prompt
|
#Appears when you have the prompt
|
||||||
function omz_termsupport_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 omz_termsupport_preexec {
|
function omz_termsupport_preexec {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt extended_glob
|
setopt extended_glob
|
||||||
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
||||||
local LINE="${2:gs/$/\\$}"
|
CMD=${CMD:gs/\\/\\\\} # escapses \ -- must be first
|
||||||
LINE="${LINE:gs/%/%%}"
|
local LINE=${2:gs/\\/\\\\} # escapes \ -- must be first
|
||||||
title "$CMD" "%100>...>$LINE%<<"
|
|
||||||
|
if [[ -o PROMPT_BANG ]]; then
|
||||||
|
# We must escape ! so that it is not interpreted as a history event number
|
||||||
|
LINE=${LINE:gs/\!/\!\!}
|
||||||
|
CMD=${CMD:gs/\!/\!\!}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -o PROMPT_SUBST ]]; then
|
||||||
|
# We must escape $ and `, as both initiate command substitution and
|
||||||
|
# the former also initiates arithmetic and parameter expansion
|
||||||
|
CMD=${CMD:gs/$/\\$}
|
||||||
|
CMD=${CMD:gs/\`/\\\`}
|
||||||
|
LINE=${LINE:gs/$/\\$}
|
||||||
|
LINE=${LINE:gs/\`/\\\`}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -o PROMPT_PERCENT ]]; then
|
||||||
|
# We must escape % so that it is not interpreted as starting an escape sequence
|
||||||
|
CMD=${CMD:gs/%/%%}
|
||||||
|
LINE=${LINE:gs/%/%%}
|
||||||
|
fi
|
||||||
|
title "${CMD}" "%100>...>${LINE}%<<"
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
autoload -U add-zsh-hook
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue