diff --git a/README.rst b/README.rst index fd6aa00..3c0de5d 100644 --- a/README.rst +++ b/README.rst @@ -79,42 +79,24 @@ Installation Auto Installation ----------------- -run:: +run:: - ./install.sh + ./install.sh [ --local ] [ --zsh ] -or:: - - ./install.zsh +and follow on screen instructions. -depending on your shell. -Enter your root password if it asks. +Use --local to install into current user's home directory. -Add the line:: - - source /etc/profile - -to ``~/.bashrc`` or ``~/.zshrc`` if it isn't already there. +Use --zsh to install for Z shell. Troubleshoot ------------ If the script fails, you may need to do:: - chmod +x install.(z)sh + chmod +x install.sh -before the first step. - - -Manual installation of autojump is very simple: copy - -- autojump to /usr/bin, -- autojump.sh to /etc/profile.d, -- autojump.1 to /usr/share/man/man1. - -Make sure to source ``/etc/profile`` in your ``.bashrc`` or ``.zshrc`` :: - - source /etc/profile +before the first step. Packaging ========= @@ -126,7 +108,7 @@ For now gcarrier and I have packaged autojump for Arch Linux. It is available in Autojump is now officially a part of Debian Sid, thanks to Tanguy Ortolo’s work (for policy reasons, it requires manual activation after installing, see /usr/share/doc/autojump/README.Debian). To install, type:: apt-get install autojump - + Autojump is also available on the OSX Homebrew package manager:: brew install autojump @@ -136,24 +118,10 @@ Autojump is also packaged for a number of other distros. Check the wiki for an u Uninstallation ============== -To completely remove autojump you should remove these files: +run:: -``/etc/profile.d/autojump.bash`` + ./uninstall.sh -``/etc/profile.d/autojump.sh`` - -``/etc/profile.d/autojump.zsh`` - -``/usr/bin/autojump`` - -``/usr/bin/jumpapplet`` - -``/usr/share/autojump/icon.png`` - -``/usr/share/autojump/`` - -``/usr/share/man/man1/autojump.1`` - -Remove any mention of autojump in your ``.bashrc`` or ``.zshrc``, then in currently running shells do:``source /etc/profile``. +and follow on screen instructions. If you keep getting ``autojump: command not found`` at the Bash prompt, do:``unset PROMPT_COMMAND``. You can also restart your shell. diff --git a/autojump.bash b/autojump.bash index 237b755..914c374 100644 --- a/autojump.bash +++ b/autojump.bash @@ -15,7 +15,7 @@ #along with autojump. If not, see . #This shell snippet sets the prompt command and the necessary aliases -_autojump() +_autojump() { local cur cur=${COMP_WORDS[*]:1} @@ -29,10 +29,9 @@ EOF } complete -F _autojump j -_autojump_files() +_autojump_files() { - if [[ ${COMP_WORDS[COMP_CWORD]} == *__* ]] - then + if [[ ${COMP_WORDS[COMP_CWORD]} == *__* ]]; then local cur #cur=${COMP_WORDS[*]:1} cur=${COMP_WORDS[COMP_CWORD]} @@ -48,21 +47,24 @@ EOF complete -o default -o bashdefault -F _autojump_files cp mv meld diff kdiff3 #determine the data directory according to the XDG Base Directory Specification -if [ -n "$XDG_DATA_HOME" ] -then +if [ -n "$XDG_DATA_HOME" ]; then export AUTOJUMP_DATA_DIR="$XDG_DATA_HOME/autojump" else export AUTOJUMP_DATA_DIR=~/.local/share/autojump fi -if [ ! -e "${AUTOJUMP_DATA_DIR}" ] -then +if [ ! -e "${AUTOJUMP_DATA_DIR}" ]; then mkdir -p "${AUTOJUMP_DATA_DIR}" mv ~/.autojump_py "${AUTOJUMP_DATA_DIR}/autojump_py" 2>>/dev/null #migration mv ~/.autojump_py.bak "${AUTOJUMP_DATA_DIR}/autojump_py.bak" 2>>/dev/null mv ~/.autojump_errors "${AUTOJUMP_DATA_DIR}/autojump_errors" 2>>/dev/null fi +# set paths if necessary for local installations +if [ -d ~/.autojump/ ]; then + export PATH=~/.autojump/bin:"${PATH}" +fi + export AUTOJUMP_HOME=${HOME} AUTOJUMP='{ [[ "$AUTOJUMP_HOME" == "$HOME" ]] && (autojump -a "$(pwd -P)"&)>/dev/null 2>>"${AUTOJUMP_DATA_DIR}/.autojump_errors";} 2>/dev/null' diff --git a/autojump.sh b/autojump.sh index dab18b9..6f56b68 100644 --- a/autojump.sh +++ b/autojump.sh @@ -15,7 +15,15 @@ #You should have received a copy of the GNU General Public License #along with autojump. If not, see . if [ "$BASH_VERSION" ] && [ -n "$PS1" ] && echo $SHELLOPTS | grep -v posix >>/dev/null; then - . /etc/profile.d/autojump.bash + if [ -f ~/.autojump/etc/profile.d/autojump.bash ]; then + source ~/.autojump/etc/profile.d/autojump.bash + elif [ -f /etc/profile.d/autojump.bash ]; then + source /etc/profile.d/autojump.bash + fi elif [ "$ZSH_VERSION" ] && [ -n "$PS1" ]; then - . /etc/profile.d/autojump.zsh + if [ -f ~/.autojump/etc/profile.d/autojump.zsh ]; then + source ~/.autojump/etc/profile.d/autojump.zsh + elif [ -f /etc/profile.d/autojump.zsh ]; then + source /etc/profile.d/autojump.zsh + fi fi diff --git a/install.sh b/install.sh index c94bb9f..eabe7f3 100755 --- a/install.sh +++ b/install.sh @@ -23,7 +23,7 @@ function add_msg { if [ "${1}" == "global" ]; then echo -e "\tsource /etc/profile.d/autojump.${2}" elif [ "${1}" == "local" ]; then - echo -e "\tsource ~/etc/profile.d/autojump.${2}" + echo -e "\tsource ~/.autojump/etc/profile.d/autojump.${2}" fi echo diff --git a/uninstall.sh b/uninstall.sh index bfe4b15..79301f0 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -26,7 +26,7 @@ function remove_msg { if [ "${1}" == "global" ]; then echo -e "\tsource /etc/profile.d/autojump.${2}" elif [ "${1}" == "local" ]; then - echo -e "\tsource ~/etc/profile.d/autojump.${2}" + echo -e "\tsource ~/.autojump/etc/profile.d/autojump.${2}" fi echo }