Id much rather use emacs (yes im old school. but i code in emacs faster than any editor iv found), but i havent had much success with a custom build process.
Id much rather use emacs
VI FTW! (and not VIM, proper VI )
Try the "Use external Editor" preference in the Arduino IDE. It actually works impressively well, for such a simple feature. What it does seems twofold: 1) don't allow the IDE to edit the sketch, and 2) re-read the sketch from disk before each "verify" or "upload" action.So you can go along in emacs, save your file, click the upload button on the IDE, and have it do the right thing.