summaryrefslogtreecommitdiff
path: root/plugins/last-working-dir/last-working-dir.plugin.zsh
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2016-09-30 22:10:59 -0600
committerTuowen Zhao <ztuowen@gmail.com>2016-09-30 22:10:59 -0600
commit4af1cb74ad3c3275d3352febf9e14e19f368d65a (patch)
treed2d3507c8b7b8a098fcefd31f2168c0d2d68abf1 /plugins/last-working-dir/last-working-dir.plugin.zsh
parent338947a74f9b042bb2550fad236ceae270c2280b (diff)
parent9263e9ca59a65cad53d1cf0581c2af344984c2af (diff)
downloadzsh-4af1cb74ad3c3275d3352febf9e14e19f368d65a.tar.gz
zsh-4af1cb74ad3c3275d3352febf9e14e19f368d65a.tar.bz2
zsh-4af1cb74ad3c3275d3352febf9e14e19f368d65a.zip
Merge branch 'master' of https://github.com/robbyrussell/oh-my-zsh
Diffstat (limited to 'plugins/last-working-dir/last-working-dir.plugin.zsh')
-rw-r--r--plugins/last-working-dir/last-working-dir.plugin.zsh33
1 files changed, 15 insertions, 18 deletions
diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh
index c458464ce..e882b288f 100644
--- a/plugins/last-working-dir/last-working-dir.plugin.zsh
+++ b/plugins/last-working-dir/last-working-dir.plugin.zsh
@@ -1,26 +1,23 @@
-#!/usr/bin/env zsh
-# Keeps track of the last used working directory and automatically jumps
-# into it for new shells.
-
-# Flag indicating if we've previously jumped to last directory.
+# Flag indicating if we've previously jumped to last directory
typeset -g ZSH_LAST_WORKING_DIRECTORY
-mkdir -p $ZSH_CACHE_DIR
-cache_file="$ZSH_CACHE_DIR/last-working-dir"
-# Updates the last directory once directory is changed.
+# Updates the last directory once directory is changed
chpwd_functions+=(chpwd_last_working_dir)
-function chpwd_last_working_dir() {
- # Use >| in case noclobber is set to avoid "file exists" error
+chpwd_last_working_dir() {
+ local cache_file="$ZSH_CACHE_DIR/last-working-dir"
pwd >| "$cache_file"
}
-# Changes directory to the last working directory.
-function lwd() {
- [[ ! -r "$cache_file" ]] || cd "`cat "$cache_file"`"
+# Changes directory to the last working directory
+lwd() {
+ local cache_file="$ZSH_CACHE_DIR/last-working-dir"
+ [[ -r "$cache_file" ]] && cd "$(cat "$cache_file")"
}
-# Automatically jump to last working directory unless this isn't the first time
-# this plugin has been loaded.
-if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then
- lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true
-fi
+# 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