Mac Command Line: Turning Apps into Commands
I moved to MacOS X because it offers both a unix command line and graphical interfaces, and I almost exclusively use the command line as I switch between tasks. If you use a terminal and aren’t familiar with the open command, I urge you to take a look.
I tend to open documents with open ~/Do[tab]… I wanted a way to open more things like this. I wanted to treat every app as if it were a command. I did this a little while back, and recently had to use a Mac without these little aliases and it was annoying! (We know that mousing was objectively faster and cognitively slower than keyboard use.
So I thought I’d share. This works great in a .tcshrc. I spent a minute translating into bash, but the escaping escaped me. Also, I suppose there might be a more elegant approach to the MS apps, but it was easier to write 5 specific aliases than to figure it out.
Anyway, here’s the code:
foreach f (/Applications/*.app /Applications/Utilities/*.app) set t=`basename -a $f` # Does not work if your app has a shell metachar in the name. Lookin' at you, superduper! set w=`echo $t | sed -e 's/ //g' -e 's/.app$//' | tr '[A-Z]' '[a-z]'` alias $w open -a \""$f"\" end alias excel open -a "/Applications/Microsoft\ Office\ 2011/Microsoft\ Excel.app" alias word open -a "/Applications/Microsoft\ Office\ 2011/Microsoft\ Word.app" alias powerpoint open -a "/Applications/Microsoft\ Office\ 2011/Microsoft\ PowerPoint.app" alias ppt powerpoint alias xls excel
(Previously: Adding emacs keybindings to Word.)