goto
is a bash utility allowing users to change faster to aliased directories supporting auto-completion ๐พ
User registers directory aliases, for example:
goto -r dev /home/iridakos/development
and then cd
s to that directory with:
goto dev
goto
comes with a nice auto-completion script so that whenever you press the tab
key after the goto
command, bash prompts with suggestions of the available aliases:
$ goto <tab>
bc /etc/bash_completion.d
dev /home/iridakos/development
rubies /home/iridakos/.rvm/rubies
Copy the file goto.bash
somewhere in your filesystem and add a line in your .bashrc
to source it.
For example, if you placed the file in your home folder, all you have to do is add the following line to your .bashrc
file:
source ~/goto.bash
To change to an aliased directory, type:
goto <alias>
goto dev
To register a directory alias, type:
goto -r <alias> <directory>
or
goto --register <alias> <directory>
goto -r blog /mnt/external/projects/html/blog
or
goto --register blog /mnt/external/projects/html/blog
goto
expands the directories hence you can easily alias your current directory with:
goto -r last_release .
and it will automatically be aliased to the whole path.
- Pressing the
tab
key after the alias name, you have the default directory suggestions by bash.
To unregister an alias, use:
goto -u <alias>
or
goto --unregister <alias>
goto -u last_release
or
goto --unregister last_release
Pressing the tab
key after the command (-u
or --unregister
), the completion script will prompt you with the list of registered aliases for your convenience.
To get the list of your currently registered aliases, use:
goto -l
or
goto --list
To cleanup the aliases from directories that are no longer accessible in your filesystem, use:
goto -c
or
goto --cleanup
To view the tool's help information, use:
goto -h
or
goto --help
Test on macOSextensively- Test in
zsh
- Write tests
- Fork it ( https://github.com/iridakos/goto/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
This tool is open source under the MIT License terms.