Skip to content
A faster way to move around (Bash 3+/Zsh)
Shell Makefile
Branch: master
Clone or download

Latest commit

Latest commit 0431104 Feb 4, 2019

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
shpec
.editorconfig Added EditorConfig Feb 4, 2019
.travis.yml
CHANGELOG.md Added 1.0.0 release notes Feb 4, 2019
Makefile rename commacd.bash -> commacd.sh Nov 28, 2018
README.md
commacd.sh

README.md

commacd Build Status

A faster way to move around (Bash 3+/Zsh).

commacd is NOT an autojump/z/fasd alternative nor they are mutually exclusive. Think of it as an improved cd.

Installation

Bash

curl -sSL https://github.com/shyiko/commacd/raw/v1.0.0/commacd.sh -o ~/.commacd.sh && \
  echo "source ~/.commacd.sh" >> ~/.bashrc

macOS users: make sure ~/.bashrc is sourced from ~/.bash_profile.

Zsh

curl -sSL https://github.com/shyiko/commacd/raw/v1.0.0/commacd.sh -o ~/.commacd.sh && \
  echo "source ~/.commacd.sh" >> ~/.zshrc

Upgrading to the latest version

curl -sSL https://github.com/shyiko/commacd/raw/v1.0.0/commacd.sh -o ~/.commacd.sh

Usage

commacd exports three commands: , (for jumping forward), ,, (backward) and ,,, (backward+forward):

~$ , des
  => cd Desktop

# move through multiple directories
~$ , /u/l/ce
  => cd /usr/local/Cellar

# allow me to choose directory in case of ambiguous pattern (= multiple choices)
~$ , d
  => 1 Desktop
     2 Downloads
     : <type index of the directory to cd into>

# given two directories jdk7 and jdk8 on the Desktop, cd into jdk8 without hitting
# interactive mode (the one shown above)
~/github$ , ~/d/j*8
  => cd ~/Desktop/jdk8

# cd into directory having 'esk' somewhere in its name
~/github$ , ~/esk # in pre-0.2.0 that would be `, ~/*esk`
  => cd ~/Desktop

# go all the way up to the project root (in this case, the one that has .git in it)
~/github/lorem/src/public$ ,,
  => cd ~/github/lorem

# cd into to the first (closest) parent directory named g*
~/github/vimium/src/public$ ,, g
  => cd ~/github

# substitute jekyll with ghost
~/github/jekyll/test$ ,, jekyll ghost
  => cd ~/github/ghost/test

# jump to some other project (in this case, located in ~/github)
~/github/rook/src/public$ ,,, binlog # in pre-0.2.0 you would need to use `m*binlog`
  => cd ~/github/mysql-binlog-connector-java

As a bonus, all three aliases support <Tab> expansion (try , /u/lo<Tab>) and can be combined with other tools (e.g. ls `, /u/lo` ).

For more information, please refer to http://shyiko.com/2014/10/10/commacd/.

Development

make # lint & test

License

MIT License

You can’t perform that action at this time.