diff --git a/bin/autojump.bash b/bin/autojump.bash index cd5d792..4e39014 100644 --- a/bin/autojump.bash +++ b/bin/autojump.bash @@ -47,6 +47,7 @@ case $PROMPT_COMMAND in ;; esac +# default autojump command j() { if [[ ${@} =~ ^-{1,2}.* ]]; then autojump ${@} @@ -64,37 +65,46 @@ j() { fi } +# jump to child directory (subdirectory of current path) jc() { if [[ ${@} == -* ]]; then autojump ${@} else - j $(pwd)/ ${@} + j $(pwd) ${@} fi } +# open autojump results in file browser jo() { - if [ -z $(autojump $@) ]; then - echo "autojump: directory '${@}' not found" - echo "Try \`autojump --help\` for more information." - false - else + if [[ ${@} == -* ]]; then + autojump ${@} + return + fi + + new_path="$(autojump ${@})" + if [ -d "${new_path}" ]; then case ${OSTYPE} in linux-gnu) - xdg-open "$(autojump $@)" + xdg-open "${new_path}" ;; darwin*) - open "$(autojump $@)" + open "${new_path}" ;; cygwin) - cygstart "" $(cygpath -w -a $(pwd)) + cygstart "" $(cygpath -w -a ${new_path}) ;; *) echo "Unknown operating system." 1>&2 ;; esac + else + echo "autojump: directory '${@}' not found" + echo "Try \`autojump --help\` for more information." + false fi } +# open autojump results (child directory) in file browser jco() { if [[ ${@} == -* ]]; then autojump ${@} diff --git a/bin/autojump.zsh b/bin/autojump.zsh index e4490fd..c12b24e 100644 --- a/bin/autojump.zsh +++ b/bin/autojump.zsh @@ -40,7 +40,7 @@ jc() { if [[ ${@} == -* ]]; then autojump ${@} else - j $(pwd)/ ${@} + j $(pwd) ${@} fi } @@ -48,21 +48,29 @@ jc() { jo() { if [[ ${@} == -* ]]; then autojump ${@} - else + return + fi + + local new_path="$(autojump ${@})" + if [ -d "${new_path}" ]; then case ${OSTYPE} in linux-gnu) - xdg-open "$(autojump $@)" + xdg-open "${new_path}" ;; darwin*) - open "$(autojump $@)" + open "${new_path}" ;; cygwin) - cygstart "" $(cygpath -w -a $(pwd)) + cygstart "" $(cygpath -w -a ${new_path}) ;; *) echo "Unknown operating system." 1>&2 ;; esac + else + echo "autojump: directory '${@}' not found" + echo "Try \`autojump --help\` for more information." + false fi } @@ -70,8 +78,7 @@ jo() { jco() { if [[ ${@} == -* ]]; then autojump ${@} - return + else + jo $(pwd) ${@} fi - - jo $(pwd)/ ${@} }