DEV Community

Andy Zhao (he/him)
Andy Zhao (he/him)

Posted on

6 1

New Computer, New Dev Environment

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
fi
# fix rbenv shell command
eval "$(rbenv init -)"
Enter fullscreen mode Exit fullscreen mode

And my .inputrc for auto-complete with bash:

set completion-ignore-case on
TAB:menu-complete
Enter fullscreen mode Exit fullscreen mode

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"].)

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (10)

Collapse
 
dimpiax profile image
Dmytro Pylypenko

Hello, use Oh My Zsh!
ohmyz.sh

Collapse
 
andy profile image
Andy Zhao (he/him)

Thanks! Maybe one day...

Collapse
 
eonist profile image
Eon

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 ✌️

Collapse
 
andy profile image
Andy Zhao (he/him)

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.

Collapse
 
cdvillard profile image
Charles D. Villard

Now what if I need to install Ruby on Windows?

Collapse
 
andy profile image
Andy Zhao (he/him)

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

Collapse
 
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.

Collapse
 
jess profile image
Jess Lee

I still need git-autocomplete.

Collapse
 
andy profile image
Andy Zhao (he/him)

The list never ends.

Collapse
 
jess profile image
Jess Lee

Finally added git-autocomplete 😅

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay