New Computer, New Dev Environment

andy profile image Andy Zhao (he/him) ・2 min read

So I recently got my first ever new MacBook Air! Yay! But I had to go through setting up everything again... Well, much like previous posts about setting up dev environments, I also experienced a bit of hell figuring out every little thing. As much as I wanted to blame the computer though, I knew it was just me because I forgot a lot about how to do it. So here I am writing this for my future self, in case I ever have to do it again, and also for anyone else who might have to do it.

The Basics

Being a TA at Actualize helped me remember a bit about setting up my environment. There was an awesome guide I could follow, and I initially wanted to just get the basics. In this case, the basics meant anything that I needed to work:

  • Chrome
  • Slack
  • Atom
  • Homebrew
  • Correct Ruby version
  • Rails
  • PostgreSQL
  • Git setup
  • Terminal settings
  • Atom packages (Linter, Emmet, ERB-snippets for Rails, etc)

Chrome, Slack and Atom were pretty straightforward, and the Go Rails guide made installing the others pretty easy. I went through similar hell as Jess did in the above post with rbenv, and thankfully fixed it after a good amount of Googling. Great! Everything's done... right?

Lo and behold, I had a few missing quality-of-life settings. I didn't have Terminal or Git auto-complete. Good thing my brain reminded me to just copy my old dot files (.bash_profile, .inputrc, for example) from my old machine and we should be good.

And done! I think. There's still that nagging feeling that I'm missing something, but it'll probably be there until I get comfortable typing on this computer.

Here's my .bash_profile for anyone interested:

# Show what Git branch you're on in command line
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
export PS1="\[\033[36m\]\w\$(parse_git_branch)\[\033[0m\] $ "
# git auto complete commands and branch names
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
# fix rbenv shell command
eval "$(rbenv init -)"

And my .inputrc for auto-complete with bash:

set completion-ignore-case on

Never ending list of additions:

  • Emmet and Atom sometimes don't play nice with their auto-complete. To fix, go to settings bar: Atom -> Keymap... and paste the following: 'atom-text-editor[data-grammar="text html ruby"]:not([mini])': 'tab': 'emmet:expand-abbreviation-with-tab' Restart and tabbing with .html.erb files should work. (For those not using Ruby, you can just delete [data-grammar="text html ruby"].)


Editor guide
eonist profile image

Emmet for Atom looks cool. big fan of Atom. I use TextExpander my self to expand snippets etc. Its probably a caveman solution compared to Emmet tho ✌️

andy profile image
Andy Zhao (he/him) Author

Emmet is great. Makes writing HTML 100x easier. Also, I would look into the Atom wrap-in-tag package. So so so useful for adding in HTML tags.

dimpiax profile image
Dmytro Pylypenko

Hello, use Oh My Zsh!

andy profile image
Andy Zhao (he/him) Author

Thanks! Maybe one day...

jess profile image
Jess Lee (she/her)

I still need git-autocomplete.

andy profile image
Andy Zhao (he/him) Author

The list never ends.

jess profile image
Jess Lee (she/her)

Finally added git-autocomplete 😅

cdvillard profile image
Charles D. Villard

Now what if I need to install Ruby on Windows?

andy profile image
Andy Zhao (he/him) Author

That's a road that I'm avoiding doing... I've heard Ruby Installer is decent though:

bgadrian profile image
Adrian B.G.

I solved a few of them with docker,few with gists and few with the IT guys 🤣

For Windows I learned about boxstarter.com, should be something for Mac too.

_spikerola profile image
Marco Marchesin

You can use \$ at the end of the PS1 variable to let bash display if you are a standard user or root.