Coder Social home page Coder Social logo

cdhist's Introduction

As another project called cdhist on github, decided to rename this project seedee
Now, the updated tool can be found here
This repository won't we updated anymore

cdhist is now seedee

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

demo

  • 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 for cd command:
    • setting env variable CDCOMPLETE=y before sourcing cdhist

keys when in menu

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

usage

$ . ./cdhist
$ 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++

environment variables

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

cdhist's People

Contributors

joknarf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.