Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| export AUTOJUMP_SOURCED=1 | |
| # set user installation paths | |
| if [[ -d ~/.autojump/ ]]; then | |
| export PATH=~/.autojump/bin:"${PATH}" | |
| fi | |
| # set error file location | |
| if [[ "$(uname)" == "Darwin" ]]; then | |
| export AUTOJUMP_ERROR_PATH=~/Library/autojump/errors.log | |
| elif [[ -n "${XDG_DATA_HOME}" ]]; then | |
| export AUTOJUMP_ERROR_PATH="${XDG_DATA_HOME}/autojump/errors.log" | |
| else | |
| export AUTOJUMP_ERROR_PATH=~/.local/share/autojump/errors.log | |
| fi | |
| if [[ ! -d "$(dirname ${AUTOJUMP_ERROR_PATH})" ]]; then | |
| mkdir -p "$(dirname ${AUTOJUMP_ERROR_PATH})" | |
| fi | |
| # enable tab completion | |
| _autojump() { | |
| local cur | |
| cur=${COMP_WORDS[*]:1} | |
| comps=$(autojump --complete $cur) | |
| while read i; do | |
| COMPREPLY=("${COMPREPLY[@]}" "${i}") | |
| done <<EOF | |
| $comps | |
| EOF | |
| } | |
| complete -F _autojump j | |
| # change pwd hook | |
| autojump_add_to_database() { | |
| if [[ -f "${AUTOJUMP_ERROR_PATH}" ]]; then | |
| (autojump --add "$(pwd)" >/dev/null 2>>${AUTOJUMP_ERROR_PATH} &) &>/dev/null | |
| else | |
| (autojump --add "$(pwd)" >/dev/null &) &>/dev/null | |
| fi | |
| } | |
| case $PROMPT_COMMAND in | |
| *autojump*) | |
| ;; | |
| *) | |
| PROMPT_COMMAND="${PROMPT_COMMAND:+$(echo "${PROMPT_COMMAND}" | awk '{gsub(/; *$/,"")}1') ; }autojump_add_to_database" | |
| ;; | |
| esac | |
| # default autojump command | |
| j() { | |
| if [[ ${1} == -* ]] && [[ ${1} != "--" ]]; then | |
| autojump ${@} | |
| return | |
| fi | |
| output="$(autojump ${@})" | |
| if [[ -d "${output}" ]]; then | |
| if [ -t 1 ]; then # if stdout is a terminal, use colors | |
| echo -e "\\033[31m${output}\\033[0m" | |
| else | |
| echo -e "${output}" | |
| fi | |
| cd "${output}" | |
| else | |
| echo "autojump: directory '${@}' not found" | |
| echo "\n${output}\n" | |
| echo "Try \`autojump --help\` for more information." | |
| false | |
| fi | |
| } | |
| # jump to child directory (subdirectory of current path) | |
| jc() { | |
| if [[ ${1} == -* ]] && [[ ${1} != "--" ]]; then | |
| autojump ${@} | |
| return | |
| else | |
| j $(pwd) ${@} | |
| fi | |
| } | |
| # open autojump results in file browser | |
| jo() { | |
| if [[ ${1} == -* ]] && [[ ${1} != "--" ]]; then | |
| autojump ${@} | |
| return | |
| fi | |
| output="$(autojump ${@})" | |
| if [[ -d "${output}" ]]; then | |
| case ${OSTYPE} in | |
| linux*) | |
| xdg-open "${output}" | |
| ;; | |
| darwin*) | |
| open "${output}" | |
| ;; | |
| cygwin) | |
| cygstart "" $(cygpath -w -a ${output}) | |
| ;; | |
| *) | |
| echo "Unknown operating system: ${OSTYPE}." 1>&2 | |
| ;; | |
| esac | |
| else | |
| echo "autojump: directory '${@}' not found" | |
| echo "\n${output}\n" | |
| echo "Try \`autojump --help\` for more information." | |
| false | |
| fi | |
| } | |
| # open autojump results (child directory) in file browser | |
| jco() { | |
| if [[ ${1} == -* ]] && [[ ${1} != "--" ]]; then | |
| autojump ${@} | |
| return | |
| else | |
| jo $(pwd) ${@} | |
| fi | |
| } |