Skip to main content
  1. Posts/

Development Environment Opinions

This is a collection of software I’ve used that I have found useful or neat. I’ve included install instructions for macOS but if you’re on linux, finding other ways to install this software shouldn’t be difficult.

Homebrew>

Homebrew #

https://brew.sh/

Homebrew is a package manager for macOS. It has some annoyances but has the largest package base and community around it.

# Install brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fish>

fish #

https://fishshell.com/

The fish shell provides a modern take on the shell and has some great documentation.

# Install fish
brew install fish
# Add fish to the list of available shells
echo /usr/local/bin/fish | sudo tee -a /etc/shells
# Set your shell to fish
chsh -s /usr/local/bin/fish
Node Version Manager>

Node Version Manager #

https://github.com/nvm-sh/nvm

POSIX-compliant bash script to manage multiple active node.js versions.

# Install nvm
# Note: Don't install this via brew as it doesn't work as of the time of writing.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

# Install fast-nvm-fish
# Only needed for fish
curl -sSL https://raw.githubusercontent.com/brigand/fast-nvm-fish/master/nvm.fish > ~/.config/fish/functions/nvm.fish

# Install node and npm via nvm
nvm install 18
nvm use 18

You may also need to add a line to your configs:

# ~/.config/fish/config.fish or ~/.zshrc or ~/.bashrc
nvm use 18
coreutils>

coreutils #

https://www.gnu.org/software/coreutils/coreutils.html

The coreutils brew formulae contains GNU file, shell, and text utilities. The default utils provided by macOS have some shortcomings and idiosyncrasies that don’t exist in the canonical GNU utilities.

# Install coreutils
brew install coreutils

You will need to update your PATH and MANPATH variables to tell macOS to use the new utils over the macOS utils:

# ~/.config/fish/config.fish
set PATH /usr/local/opt/coreutils/libexec/gnubin $PATH
set MANPATH /usr/local/opt/coreutils/libexec/gnuman $MANPATH

# ~/.zshrc or  ~/.bashrc
export PATH="$(brew --prefix coreutils)/libexec/gnubin:/usr/local/bin:$PATH"
thefuck>

thefuck #

https://github.com/nvbn/thefuck

thefuck is one of the most useful command line utilities I have found.

# Install thefuck
brew install thefuck

You will need to configure it before use as well:

# ~/.config/fish/config.fish
thefuck --alias | source
# ~/.zshrc or  ~/.bashrc
eval "$(thefuck --alias)"

I would also recommend adding an alias ;)

# Be more polite
alias f='fuck'
starship>

starship #

https://github.com/starship/starship

Starship is a minimal, fast, and extremely customizable prompt for any shell.

brew install starship

You will need to configure your shell to use starship:

# ~/.config/fish/config.fish
starship init fish | source
# ~/.zshrc
eval "$(starship init zsh)"
# ~/.bashrc
eval "$(starship init bash)"
VSCodium>

VSCodium #

https://github.com/VSCodium/vscodium

VSCodium is a build of VSCode that strips out all of Microsoft’s telemetry.

# Install vscodium
brew cask install vscodium

# Can still be launched from cli like this:
code ~/foo.txt
FiraCode>

FiraCode #

https://github.com/tonsky/FiraCode

FiraCode is a nice monospace font with ligatures.

# Install FiraCode
brew tap homebrew/cask-fonts
brew cask install font-fira-code

You will also need to configure Visual Studio Code:

// settings.json
{
  // Use the font
  "editor.fontFamily": "Fira Code",
  // Use the font ligatures
  "editor.fontLigatures": true
}
exa>

exa #

https://github.com/ogham/exa

exa attempts to be a more featureful, more user-friendly version of ls.

brew install exa

You can replace ls with exa with an alias in your config file:

# ~/.config/fish/config.fish or ~/.zshrc or ~/.bashrc
alias ls='exa'
bat>

bat #

https://github.com/sharkdp/bat

A cat clone with syntax highlighting and Git integration.

# Install bat
brew install bat

Again, we can replace cat with bat with an alias:

# ~/.config/fish/config.fish or ~/.zshrc or ~/.bashrc
alias cat='bat'
fd>

fd #

https://github.com/sharkdp/fd

fd is a simple, fast and user-friendly alternative to find.

# Install fd
brew install fd
# ~/.config/fish/config.fish or ~/.zshrc or ~/.bashrc
alias find='fd'
tldr>

tldr #

https://github.com/dbrgn/tealdeer

A collection of simplified and community-driven man pages.

# Install tldr
brew install tealdeer

# Use like man
tldr node
htop>

htop #

https://hisham.hm/htop/

A terminal based process/task manager for unix systems.

# Install htop
brew install htop
git>

git #

Git comes on macOS by default but it isn’t updated very frequently. You can install the latest git with brew:

# Install git
brew install git
Mark Text>

Mark Text #

Mark Text is a markdown based notes application. I like having my markdown notes separate from my VSCode instances.

I used Mark Text to write this article. :D

# Install Mark Text
brew cask install mark-text