| 
									
										
										
										
											2016-09-28 18:23:15 +02:00
										 |  |  | # Flag indicating if we've previously jumped to last directory | 
					
						
							| 
									
										
										
										
											2012-10-16 22:36:56 -07:00
										 |  |  | typeset -g ZSH_LAST_WORKING_DIRECTORY | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 18:23:15 +02:00
										 |  |  | # Updates the last directory once directory is changed | 
					
						
							| 
									
										
										
										
											2015-08-04 15:07:47 -07:00
										 |  |  | chpwd_functions+=(chpwd_last_working_dir) | 
					
						
							| 
									
										
										
										
											2016-09-28 18:23:15 +02:00
										 |  |  | chpwd_last_working_dir() { | 
					
						
							|  |  |  | 	local cache_file="$ZSH_CACHE_DIR/last-working-dir" | 
					
						
							| 
									
										
										
										
											2013-04-08 18:45:45 +08:00
										 |  |  | 	pwd >| "$cache_file" | 
					
						
							| 
									
										
										
										
											2012-10-16 22:36:56 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 18:23:15 +02:00
										 |  |  | # Changes directory to the last working directory | 
					
						
							|  |  |  | lwd() { | 
					
						
							|  |  |  | 	local cache_file="$ZSH_CACHE_DIR/last-working-dir" | 
					
						
							|  |  |  | 	[[ -r "$cache_file" ]] && cd "$(cat "$cache_file")" | 
					
						
							| 
									
										
										
										
											2012-10-16 22:36:56 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-28 18:30:46 +02:00
										 |  |  | # Jump to last directory automatically unless: | 
					
						
							|  |  |  | # - this isn't the first time the plugin is loaded | 
					
						
							|  |  |  | # - it's not in $HOME directory | 
					
						
							|  |  |  | [[ -n "$ZSH_LAST_WORKING_DIRECTORY" ]] && return | 
					
						
							|  |  |  | [[ "$PWD" != "$HOME" ]] && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true |