This question is on the "do everything through the terminal" mindset. I find navigating through the file system very inefficient. My typical workflow is:
I want to go to
cd ~ cd foo/b...??? # okay, I won't quite remember what bar was called # let me just go to "foo" and view it cd foo ls # Oh, it was bar cd bar # Now, what was after bar again? ls # boo, that is it. cd boo pwd ls cd for cd my # ERROR: my not found ls # at this point I'm kinda lost where I am pwd cd .. cd far cd my cd pro<tab> cd proj<tab> cd proje<tab> # wtf am I in the wrong directory again? ls # notice there is a directory called projectiles, that's why it doesn't work cd project vim fi<tab>
Now I want to go to ~/foo/bar/boo/settings.txt
cd ../../.. vim set<tab> # notice I'm editing a completely different file # wtf # :q ls # oh I'm in the wrong place pwd cd .. vim set<tab> # :q # Done!
In a perfect world, I'd probably just type
vim ~/foo/bar/boo/far/my/project/file.txt, but in a real-world workflow, that would be the equivalent of just typing the source code of a program from line 0 to the last line without missing a character. That's now how work works — you need some kind of interaction, it is a steppy and messy process. And using
pwd for that is very inefficient to me.
Is there a better way? Am I missing something?