Instead of regex searching a list of directories weighted by "frecency" (recent + frequency),
I prefer to have a list of visited directories and just tab complete their
basenames. This is what
j does. I typically remember the basename of the
directory I want to visit, just not the path, so this works very well for me.
When there are multiple directories with the same basename, a curses-based interface is opened to select one from a list. The list is ordered by time of last visit, so it is very easy to return to recent directories. Overall, I like this process because it is very predictable: I know I'm going to go where I expect.
I wrote a bit about the development process here. This is of course mostly just a written-for-fun tool, that I happen to find useful. If you do as well, great!
To install, run the following commands. The
install.zsh script installs j's
data files to
~/.j. To change this, export
$J_DIR before running the
git clone email@example.com:adamheins/j.git /path/to/j cd /path/to/j ./install.zsh
j.zsh by adding something like
j [--] <basename> j [options] [args] Options: - Jump to the last visited directory. -c, --clean [N] Remove all directories that no longer exist or that have been accessed more than <N> days ago. -h, --help Show this help message and exit. -l, --list <basename> List all entries for <basename>. -p, --prune <basename> Interactively delete entries for <basename>. -r, --recent Select one of the past 10 last visited directories and jump to it.
Data and other files are stored in the directory pointed to by
~/.j by default. A custom location can be used by exporting
Directories can be ignored by adding glob patterns to
Tests are run with zunit. Run
zunit in the root
directory to run the tests.
MIT license. See the LICENSE file.