Navigate interactively through directories / history of visited directories using arrow keys from command line.
Compatibility : bash / ksh / zsh
(compatible macos / debian / centos / solaris / alpine ...)
- rapidily switch to already visited directories using interactive menu
- use locate (mlocate/plocate) to rapidly cd to any directory
- navigate interactively into directories/history using left/right arrow keys in menu
- directly from command line without any cd command using shift-arrow keys (bash/zsh)
- cd autocompletion with interactive menu (bash)
for a complete next-gen shell experience, see also these projects:
- nerdps1 : auto-transportable dynamic PS1 prompt (you can see it in the demo)
- redo : replacement of shell history command search (Ctrl+R or Esc+/) with interactive menu
- complete-ng : nextgen bash completion with interactive menu
- using bash/zsh in emacs or vi mode, key binding is available as shortcuts:
- default key binding with Shift+Arrows or Ctrl+Arrows (can be overridden using CD*BIND variables)
Left | Up/Down | Right |
---|---|---|
previous dir in history | ||
parent dir (..) | dir history browser | dir browser |
directory pattern can be put on command line before hitting shortcut to filter result
putting on command line : work
and hitting Shift+⇧ will bring you to last visited directory containing work
key | action |
---|---|
Shift+⇩ | cd history menu |
Shift+⇧ | return to last directory in history matching pattern |
Shift+⇨ | navigate from current directory |
Shift+⇦ | go to parent dir (cd ..) |
Ctrl+Shift⇩ | search directories matching pattern in locate db |
- using bash,
<tab>
cd auto completion can be enabled forcd
command:- setting env variable
CDCOMPLETE=y
before sourcingseedee
- setting env variable
key | action |
---|---|
⇩ | select next item |
⇧ | select prev item |
End | select last item |
Home | select first item |
⇨ | browse selected directory |
⇦ | browse parent directory |
Shift+⇨ | browse selected directory with subdirectories depth 4 |
Shift+⇦ | back to only show subdirectories depth 1 |
Shift+⇩/PgUp/Ctl+F | next page |
Shift+⇧/PgDn/Ctl+B | previous page |
Del/F8 | delete directory entry in history |
Esc | exit |
Ctrl+A | use all screen to display menu |
Enter/Tab | go to directory |
- filter pattern can be applied entering text
- selection can be done entering item number
$ . ./seedee
$ cd <dir>
=> change to <dir> and add <dir> to $CDHISTFILE
$ cd --
=> display current history / choose dir to change
$ cd -- <pat>...
=> search pattern <pat> in current history, change to dir if unique, display / chose dir either
$ cd - <pat>...
=> search pattern <pat> in cd history, change to dir first matched
$ cd + [<pat>]...
=> display immediate subdirectories of cwd, search / choose dir to change (except dot dirs, like .git/*)
$ cd ++ [<pat>]...
=> display subdirectories until depth 4, search / choose dir to change (except dot dirs, like .git/*)
$ cdl <pat>...
=> use locate -r and get list of directories to switch
cd - <opts>
cd -- <opts>
cd + <opts>
cd ++ <opts>
are aliases to cd- cd-- cd+ cd++
Variable | Description |
---|---|
CDHISTFILE |
path to history file (default to ~/.cd_history) |
CDNBDIRS |
Number of directories in history to display (default 10) |
CDINITDIRS |
Directory list (\n separated) to initialize CDHISTFILE if empty |
CDPOWERLINE |
set to "n" to disable powerline symbol usage |
CDHISTBIND |
bind key to cdhist |
CDDOTBIND |
bind key to navigate from current dir |
CDLBIND |
bind key to cdlocate |
CDUPIND |
bind key to cd .. |
CDLASTBIND |
bind key to cdhist last dir matching text |