- Oh My Zsh
- Custom Aliases
- Useful default aliases
- Use gcm + gco when rebasing
- Use shortcuts
- Autojump
- The F****
- Reverse search through command history
- iTerm2
- Settings
- Enable option/alt + left || right moves the cursor across words
- Enable "Reuse previous session's directory"
- Workflow
- Alertnative
- VS Code
Oh My Zsh
Powerful combo of Zsh + a bunch of useful plugins
Custom Aliases
alias y="yarn"
alias ys="yarn start"
alias yt="yarn test"
alias gcm="git checkout master"Useful default aliases
l # alias for ls -alh
g # alias for git
gco # alias for git checkout
gss # alias for git status -s
gcb # alias for git checkout -b
glog # alias for git log --oneline --decorate --graphFull cheat sheet: https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet or use the alias command to see all available aliases
Use gcm + gco when rebasing
gcm # checkout master
g pull # pull the latest master
gco - # switch back to your working branch 
g rebase master
g push -f
Use shortcuts
- # shortcut for cd - : go to previous directory
~ # shortcut for cd ~ : go home
sudo !! # reruns previous command with sudo prefix. can also be done using `the eff`Autojump
Very useful plugin, not Zsh specific. Let's you jump to any directory that you've already visited using fuzzy matching. E.g.
j 2020 # jumps to ~/Projects/www-wrapped-2020
j mob # jumps to ~/Projects/client-web/open/mobile-web-playerThe F****
The Eff, as I will call it in the interest of keep it PG, is a self described tool that "corrects errors in previous console commands". It's kind of like a command line linter
I change the alias from, literally, fuck to sure. 
brew install thefuck
echo 'eval $(thefuck --alias sure)' >> ~/.zshrcExample usage
➜ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
    git push --set-upstream origin master
➜ sure
git push --set-upstream origin master [enter/↑/↓/ctrl+c]
Counting objects: 9, done.Reverse search through command history
Not Zsh specific. Use ctrl + R
Alertnative to
- Pressing up 1 million times
- history | grep foothis is is a good option if you want to use regexs to search through mor e rows
iTerm2
cmd + d # create a new vertical session
shift + cmd + d # create a new horizontal session
cmd + t # create a new tab sessionSettings
Enable option/alt + left || right moves the cursor across words
In Profiles > Keys, add the following
Enable "Reuse previous session's directory"
In Profiles > General > Working Directory, check "Reuse previous session's directory"
This means that whenever you start a new session using cmd + D, it puts you in the pwd of the last session
Workflow
I'll usually have one tab per "project/initiative", with one to four split session per tab, depending on the number of repos involved, e.g.
- ysin the upper left
- yt --watchin the lower left
- zshshell on the whole right half
Alertnative
Use tmux, which should actually work in conjunction with iTerm2.
VS Code
Follow the docs on launching from the command line. TLDR: cmd + P → seach for "install" → select "Shell Command: Install 'code' command in PATH"
This lets you open projects by doing
code .