ahmd_w
Last Updated: February 25, 2016
·
688
· fousa

Fast directory access in your command line.

I created a small gem to easily navigate to a "bookmarked" directory.

The gem is called yoke and it creates an alias for the directory your in with the current directory name. (or a custom name as you prefer)

Here is a small example on how to use this.

> cd ~/projects/myproject
> yoke
##########################
### YOKE #################
##########################
###           
### Added Projects as alias for /Users/jellevandebeeck/...
###
### You should reload the 'yoke' aliases defined in your...
### You can do this by executing the following command:               
###                                                                                                  
### source ~/.yoke
###            
### Or just start another shell and the aliases ...
###   
##########################

Now an alias for ~/projects/myproject is created. Just run myproject in another shell in order to go to this directory.

> pwd
/Users/jellevandebeeck
> myproject
> pwd
/Users/jellevandebeeck/projects/myproject

Makes my terminal life a lot easier!

† Currently works best in the ZSH shell, working on a fix for BASH shells.

6 Responses
Add your response

6780

nice. you can also do this in .zshrc by simply creating alias.

over 1 year ago ·
6782

True. But I hate going into that file al the time, so typing 'yoke' was much faster! :)

over 1 year ago ·
6807

Cool tool!

What happens if you execute yoke in, say, /usr/local/python? Did you just alias python to a directory, or are there safeguards in place? I see in your code that you're making sure you're not re-aliasing an already existing alias with

if list.has_key?(name) false

but I didn't dig deep enough to see if you're checking everything in the PATH.

over 1 year ago ·
6818

Hi Rick,

I currently don't check aliases like this. I presume the user would be smart enough not to make them. But maybe it's a good idea not to allow this kind of aliases. Thanks for the reply!

over 1 year ago ·
6872

nice.

there's also fasd, which may be al little harder to setup, but makes you teleport in your filesystem.

over 1 year ago ·
6989

Yeah, I could go either way on the protecting the PATH front. On the one hand, I like the idea of expecting users to know enough about their environment to not re-alias something. On the other hand, if you want to use this in a shared environment, it's more responsible to check all of the current aliases and the PATH before creating a new alias, so using this in a shared environment would require looking through the bash profile anyway (if there isn't a check).

In other news, I like that you called it "Yoke". It's short and sweet, while really symbolizing the action. Great work!

over 1 year ago ·