mg trash file

If you've been an OpenBSD user for any period of time, you probably know what mg is. For those who don't know, mg stands for MicroGnuEmacs. It's a small clone of Emacs maintained by the OpenBSD team that's included with the base system.

Being an Emacs user, I love that mg is part of the OpenBSD base system. It's great to have an editor that has familiar keybinds on a system that I haven't had the time to install any packages on. It also has (in my opinion), more useful features than vi, like auto-fill-mode and dired.

Despite all of the excellent things it emulates from Emacs, it also emulates a couple behaviours from Emacs that I find a little annoying. One of those behaviours is leaving backup files everywhere when editing. Backup files have the original file name, with a tilde appended to the end. So if you're editing pf.conf, mg will automatically create a backup file called pf.conf~ in the same directory.

Backup files can be incredibly useful if you save a mistake while editing and you want to see what the original file looked like, but after a while of editing files, seeing your /etc/ littered with files ending in ~ can be a little annoying.

Fortunately the creators of mg are aware of this issue and have provided a way to deal with it.

Edit the .mg in your home directory, or create it if it doesn't exist. Then add the following line

backup-to-home-directory

That's it. Now mg will still create backup files, but it will save them to ~/.mg.d/ instead of the directory of the file you're editing. It saves the file as the full path to the original file, with the forward slashes replaced by exclamation marks. So if you were editing /etc/pf.conf, the backup file will be saved as ~/.mg.d/!etc!pf.conf~.