mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# Set Apple Terminal.app resume directory
 | 
						|
# based on this answer: http://superuser.com/a/315029
 | 
						|
# 2012-10-26: (javageek) Changed code using the updated answer
 | 
						|
 | 
						|
# Tell the terminal about the working directory whenever it changes.
 | 
						|
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
 | 
						|
  update_terminal_cwd() {
 | 
						|
        # Identify the directory using a "file:" scheme URL, including
 | 
						|
        # the host name to disambiguate local vs. remote paths.
 | 
						|
 | 
						|
        # Percent-encode the pathname.
 | 
						|
        local URL_PATH=''
 | 
						|
        {
 | 
						|
            # Use LANG=C to process text byte-by-byte.
 | 
						|
            local i ch hexch LANG=C
 | 
						|
            for ((i = 1; i <= ${#PWD}; ++i)); do
 | 
						|
                ch="$PWD[i]"
 | 
						|
                if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then
 | 
						|
                    URL_PATH+="$ch"
 | 
						|
                else
 | 
						|
                    hexch=$(printf "%02X" "'$ch")
 | 
						|
                    URL_PATH+="%$hexch"
 | 
						|
                fi
 | 
						|
            done
 | 
						|
        }
 | 
						|
 | 
						|
        local PWD_URL="file://$HOST$URL_PATH"
 | 
						|
        #echo "$PWD_URL"        # testing
 | 
						|
        printf '\e]7;%s\a' "$PWD_URL"
 | 
						|
    }
 | 
						|
 | 
						|
    # Register the function so it is called whenever the working
 | 
						|
    # directory changes.
 | 
						|
    autoload add-zsh-hook
 | 
						|
    add-zsh-hook chpwd update_terminal_cwd
 | 
						|
 | 
						|
    # Tell the terminal about the initial directory.
 | 
						|
    update_terminal_cwd
 | 
						|
fi
 |