off course there's an Emacs package for that