I hate having to have one terminal with ssh running and one terminal with sftp running (especially when sftp doesn't have tab completion or any of the other handly shell shortcuts). Am I doing something wrong?
In addition to all the scp comments here, if I'm doing a constant <edit files locally, update remote copy of directory, test on remote> cycle; I'll usually use rsync instead of scp.