My Mac setup: some of my favorite programs
Every once in a while, people ask me what kinds of programs I use on my Mac to streamline my programming workflow, so I thought I would write them down. These programs cover everything from editing text to managing windows and keyboard shortcuts. Some of them port over features that I liked from my Windows days, and others implement functions that should be in the operating system. Let’s get to it!
Editor: Sublime Text
A screenshot of Sublime Text
I’ve used a few different editors: Dreamweaver (sorry!), Notepad++, Geany, Vim, and now Sublime Text. I found that I never got to learning all of the fancy keyboard shortcuts in Vim, and so I never got to the point where using it actually made me more efficient. I also think Sublime has an easier package management system and a saner default setup, so I can spend less time configuring the editor and more time actually writing code.
The main plugins I use:
- Package Control to install and remove packages (https://sublime.wbond.net/installation)
- SublimeLinter to catch unused variables and typos which can be deadly in JavaScript (https://github.com/lunixbochs/sublimelint)
- LESS-sublime to highlight LESS code (https://github.com/danro/Less-sublime)
My favorite features:
- Cmd-P to open a file in the current project by filename
- Cmd-D to initiate multiple selections
- The built-in file browser
- Opening Sublime from the terminal, and using it as my default editor for Git and other programs. I can even open a directory with “sublime .” (https://www.sublimetext.com/docs/2/osx_command_line.html)
Terminal: iTerm 2
I’ve always wanted to navigate terminal tabs as easily as browser tabs, and open my terminal with a global hotkey. iTerm gives me both of those features. I have configured my caps lock key to open the terminal (using Seil, described below), making it super easy to use Sublime for editing, drop into the terminal for a second to run a command, and then close the terminal with the same key. I also love the default hotkeys, which match Chrome’s tab navigation hotkeys — Cmd-W to close a tab, Cmd-# to open a certain tab, Cmd-T to open a new tab.
I used to have iTerm open using ~ (tilde), like in Quake, but unfortunately editing markdown requires you to use that key all the time, so I had to compromise on the nostalgia.
Search: Alfred
Spotlight is pretty awesome, but doesn’t exactly meet my needs. What I want is pretty simple:
- Open search with one key
- Type the first few characters of a program name and enter to run the program
- Type a URL to go to it in my default browser
- Type a search query and hit enter to search on Google
I was pretty excited to find out that all of these are default behaviors of Alfred! I set up the right command key to open Alfred because I don’t really use that key and it reminds me of how I used to open the Windows search feature with the Windows key (unfortunately all of the modifier keys on the left are actually used on a Mac).
Window Management: Moom + Hyperdock
http://manytricks.com/moom/ and http://hyperdock.bahoom.com/
Neither Moom nor Hyperdock do the trick by themselves, but together they do exactly what I want:
- Snap windows by dragging to the sides or corners of the screen, like in Windows (Moom or Hyperdock, I use Moom)
- Display window previews when hovering over the dock, like in Windows (Hyperdock)
- If I really need to, snap windows to thirds of the screen. Moom does this brilliantly by displaying a grid that you can paint over to position the window.
I feel like these could be features of the native Mac window manager, but while they aren’t I don’t think I could live without these two programs.
Keyboard remapping: Karabiner and Seil
https://pqrs.org/osx/karabiner/ and https://pqrs.org/osx/karabiner/seil.html.en
Out of the box, Mac OS has only rudimentary keyboard remapping features. I had to install these two programs to create two key mappings:
- Map caps lock to F1 to open iTerm
- Map right Cmd to F2 to open Alfred
Those are both keys I almost never use, that are now mapped to two programs I use every few minutes. Not having to move my hands to the F-keys or enter a two-key combination to start a search or open my terminal has made life much more convenient.
Editing Markdown: Macdown
I get that Markdown is supposed to be used from a standard text editor, but sometimes having a preview is nice. MacDown is very pretty, easy to use, and (with some effort) can be configured to open files from the terminal.
[Edited Jul 2, 2015: Switched from Mou to MacDown]
Well, that’s it!
Hopefully some of these tools are useful to you — it definitely took me a while to find all of these things and compare alternatives to figure out the most efficient combination for me.
A little about me: I’m Sashko Stubailo (@stubailo on Twitter). I work at Meteor Development Group in San Francisco, building an exciting and futuristic JavaScript web framework. Check it out: https://www.meteor.com/