I simplified the example, cdc does more than just a change the directory. `cdc -t name` changes to the directory and attaches to the tmux session of the same name if it exists, and if it doesn't, sets up my tmux layout for development.
Re:Fish shell 2.2
by charles2013 on Sunday July 12, 2015 @06:07PM
(#9875189)
whilst reading your above comment i wondered why you chose not to use environment variables instead. e.g.:
$ export cdc_stuff='/Users/me/src/project_stuff'
$ cd $cdc_stuff
however, now it's clear.in the event you're looking for alternatives, perhaps porting your code to (e.g.) ruby could work.
just in case, here's the isbn number of a book called, 'Build Awesome Command-Line Applications in Ruby 2,' from the pragmatic bookshelf: 978-1-93778-575-8
Admittedly for the description given, it does sound like CDPATH would work. But I'm going to assume there's a reason, and functions that change the current working directory are the perfect example of functions that can not be run in a subshell, so will have to be rewritten to fish, which is what the author was providing.