I thought I'd share my current terminal setup. Over the years, I've been able to optimize my workflow. This allows me to:
- find information quicker
- reduce the time I spend searching for commands
- become more comfortable with
cli'sin general - look like a badass
My evolution has been interesting over the years. In the beginning, I was that developer who used every plugin imaginable (for the ['terminal', 'IDE', 'etc']). Then I watched this video from MPJ about productivity in the workplace. I then started scaling back to where I am now.
App
I use macOS 99% of the time, so my go to app is iTerm2.
Installation
You can download it from iTerm2's website, or install through Brew Cask:
pro tip: Brew Cask is amazing, it can install and manage all of your Mac applications through a simple cli.
brew cask install iterm2
Oh My ZSH
I've experimented with other shell's like fish, but they were always too abstracted, or were too complicated.
Installation
# if you don't have zsh installed
brew install zsh
# install oh my zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Theme
I use the robbyrussel theme. It gives me git information, which is perfect.
It also trims the directory path, so you only see the current directory. This avoids obnoxiously long folder paths taking up valuable space.
# ~/.zshrc
ZSH_THEME="robbyrussell"
Plugins
I only use a few plugins:
- z - native plugin, don't need to install
- zsh completions
- zsh autosuggestions
Installation
# zsh completions
git clone https://github.com/zsh-users/zsh-completions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions
# zsh autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Then update your ~/.zshrc:
# ~/.zshrc
plugins=(
z
zsh-completions
zsh-autosuggestions
)
autoload -U compinit && compinit
Then source your configuration:
source ~/.zshrc
Bonus: Keyboard Bindings
# ~/.zshrc
bindkey -e
# allows you to use the `option + [left, right]` key
# to skip words in a command you're writing.
bindkey '\e\e[C' forward-word
bindkey '\e\e[D' backward-word
# allows you to use the `[up, down]` key on a partial command
# to search your bash history for similar commands
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
Conclusion
I do believe there is a happy medium between no tooling, and too much tooling. You can have enough to be dangerous, but not enough to overwhelm you.
For a more in depth overview of what I use on a daily basis, checkout my Uses page on my website.
Top comments (0)