mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	lib/termsupport now uses add-zsh-hook
This is needed to play nice with plugins that need various hooks.
This commit is contained in:
		
							parent
							
								
									757fa3314d
								
							
						
					
					
						commit
						40c47a7375
					
				@ -4,7 +4,7 @@
 | 
			
		||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
 | 
			
		||||
function title {
 | 
			
		||||
  [ "$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
 | 
			
		||||
  elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
 | 
			
		||||
    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: %~"
 | 
			
		||||
 | 
			
		||||
#Appears when you have the prompt
 | 
			
		||||
function precmd {
 | 
			
		||||
function omz_termsupport_precmd {
 | 
			
		||||
  title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#Appears at the beginning of (and during) of command execution
 | 
			
		||||
function preexec {
 | 
			
		||||
function omz_termsupport_preexec {
 | 
			
		||||
  emulate -L zsh
 | 
			
		||||
  setopt extended_glob
 | 
			
		||||
  local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
 | 
			
		||||
  title "$CMD" "%100>...>$2%<<"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
autoload -U add-zsh-hook
 | 
			
		||||
add-zsh-hook precmd  omz_termsupport_precmd
 | 
			
		||||
add-zsh-hook preexec omz_termsupport_preexec
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user