
"j" for switching directories - hacking "cd" with python - joeyespo
http://charlesleifer.com/blog/-j-for-switching-directories---improving-the-cd-command-/
======
pajju
Also see fasd: Its the best one out there.

<https://github.com/clvv/fasd>

\+ Fasd (pronounced similar to "fast") is a command-line productivity booster.

\+ Fasd offers quick access to files and directories for POSIX shells. It is
inspired by tools like autojump, z and v.

\+ Fasd keeps track of files and directories you have accessed, so that you
can quickly reference them in the command line.

I've been using this tool, nothing comes close this one. Trust me on this. :)

~~~
pekk
What is better about it? Why should I trust you on this?

------
toisanji
I already use this all the time for the past few years with the exact same
command "j": <https://github.com/joelthelion/autojump>

~~~
tuananh
i love this little app. So useful.

~~~
joelthelion
thanks :)

------
cpa
For a simpler worflow than "j" one can use pushd/popd which are builtin in
bash. One can push and pop directories one a stack. It's pretty neat!

$ cd foo1

$ pushd ~/foo2

[do some work]

$ pushd ~/foo3

[do some work]

$ popd

$ pwd

~/foo2

$ popd

$ pwd

~/foo1

~~~
cpeterso
You can also:

    
    
      $ cd -
    

to jump to the last directory, like popd without the pushd.

I also alias .. to 'cd ..' and ... to 'cd ../..' (and so on).

------
lobster_johnson
A great tool with no dependencies other than the shell already exists:

<https://github.com/rupa/z>

~~~
manojlds
Those on Windows, see <https://github.com/manojlds/posz>

Also, an implementation of CDPATH - <https://github.com/manojlds/cdposh>

------
logn
I tried a similar thing to replicate Eclipse's 'Open Resource' search
functionality while I was coding in Vim.

<https://github.com/hollingsworthd/POSIXplorer>

You basically enter a search term or regex and it will search recursively down
from your current directory to find the file. If >1 results are found it
displays a navigable list of files to open, otherwise it immediately loads the
file in your $EDITOR (or defaults to vim).

It also can search file contents in addition to a path regex, with all the
same functionality to browse and open files.

OP's script looks neat. I think there are all sorts of things we could do to
improve cmdline usability.

------
stevekemp
I've been burned by these kind of tools before, when I started using the
CDPATH variable, as supported by bash.

Imagine the situation where you have a bunch of domains stored beneath
/home/www. For example "/home/www/example.com" and "/home/www/example.org".
(This is common for vhosts with a single prefix).

I decided I was going to get rid of the archived copies beneath /var/backup -
so I decide to run "cd /var/backup; cd example.com; rm -rf *". Because of the
path-searching I ended up at my live location, not my (obsolete) backup.

Since then I've always decided to navigate manually.

------
amarsahinovic
Shameless plug: I wrote a similar utility for myself called 'Goto Bookmark'
which allows you to bookmark a directory so you can jump to it from anywhere
when needed.

Bitbucket: <https://bitbucket.org/amarsahinovic/gb>

Github mirror: <https://github.com/amarsahinovic/gb>

------
JesseAldridge
I made a similar tool: <https://github.com/JesseAldridge/simplejump>

One nice feature is you can jump to the nth matching result like so:

    
    
        $ z d
        $ pwd
        /Users/jessealdridge/Desktop
        $ z d 2
        $ pwd
        /Users/jessealdridge/Dropbox

------
nviennot
I find these very useful: [https://github.com/nviennot/zsh-
config/blob/master/lib/key-b...](https://github.com/nviennot/zsh-
config/blob/master/lib/key-bindings.zsh#L7-L12)

ctrl+f is similar to "forward" in your browser. ctrl+b is similar to "back" in
your browser.

------
jgross206
A very, very simple cd "hack" I use is (put this in your .bashrc):

function cd() { builtin cd "$*" && ls }

it automatically runs "ls" every time you cd somewhere. I find when I'm using
someone elses box or SSH'd in somewhere it's really annoying not to have it.

------
Splognosticus
Also bash has a built-in incremental history search.

[http://www.gnu.org/software/bash/manual/bashref.html#Searchi...](http://www.gnu.org/software/bash/manual/bashref.html#Searching)

------
tkellogg
While we're talking about "smart cd" tools, I should mention my Windows
PowerShell tool.

<https://github.com/tkellogg/Jump-Location>

------
meonkeys
It seems there are many derivatives. Here's one I use and like:
<https://github.com/meonkeys/j2> .

------
DanielRibeiro
You can also just set the $CDPATH:
<https://news.ycombinator.com/item?id=4466687>

------
hk__2
You can also check your most used commands with huffshell (gem install
huffshell), it also suggests you some aliases.

------
daemon13
so autojump, z and fasd - which one is better and why?

~~~
crazydiamond
`z` is good. `autojmp` is similar. Also try `cetus` ( `gem install cetus`) and
`zfm` (written in zsh, <https://github.com/rkumar/zfm>).

