You can use Helm Projectile to jump around files in projects easily. There are some demos at the top of my guide. You can even treat any directory as a project and jump to anywhere by making an empty .projectile
file in that directory, if your project is not directly supported by Projectile. Projectile not only provides jumping to files/directories from anywhere at anytime, but you can also jump to any file at cursor, in any file without merely the filename.
For jumping to find, use helm-projectile-find-file
, bound to C-c p f by default.
For jumping to directory, use helm-projectile-dir
, bound to C-c p d by default.
To switch between recognized projects, use helm-projectile-projects
, bound to C-c p p.
Projectile can possibly be used in a directory with a large number of files (i.e. your home directory with something like 80k-100k files) by enable caching:
(setq projectile-enable-caching t)
Depend on your hard drive, the first time starting helm-projectile-find-file
may take a while to retrieve the file list and block Emacs. But this only happens once. Subsequent access you get the file list instantly until you invalidate the cache.
Note that you can fuzzy match without entering a space between search terms. The difference is that, if you add a space, Helm reverts to its old matching behavior: exact match with regex. Without a space, Helm uses the fuzzy matching similar to the one you see in Sublime Text.