While I'm a long term emacs user (since 2000), I did not write much emacs lisp over the years. In fact I kept my config unchanged for more than a decade. Happy and lazy, you see.
But lately I stumbled upon a lot of emacs enthusiasts like Sacha Chua. And so, a couple of weeks ago, I started to re-organize my .emacs config. I turned it into an outshine file for better overview, added a version, made it portable (now I use the very same config on Windows, Linux and FreeBSD with various emacs versions). Also I added LOTs of convenient stuff to my emacs. Some are external modules I discovered, some developed myself.
One of the things I added was expand-region, which I love! But I also wanted to be able to delete stuff the same way: just press a key and delete something, press it again and delete more, press it again and delete even much more until finally the whole buffer gets deleted. So I started to implement it on my own. And I learned a lot about lisp in the process.
However, the code got bigger and bigger and I decided to put it into an extra file, but don't get me wrong: viking-mode is pretty small compared to other modes. While I was at it, I made a minor mode of it. This is not the first time, I created a mode, cisco-mode is my fabrication as well, but this time I tried to make it really good, conforming to all specs and guidelines. Finally my submission to melpa have been accepted and so here it is: my first minor mode on melpa: http://melpa.org/#/viking-mode.
The code itself is hosted on Github. And here is a small demo/screencast I made so you can see how it works:
A word about the name: I choosed this name because viking-mode just deletes things, you do not have to mark them, there's no "Are you sure?" annoyances. It is even possible to disable putting deleted stuff into the kill-ring (which would make it possible to yank it back somewhere). So - it just kills. Like a Viking, hence the name.
Emacs: read-only copy of current buffer
Emacs screen reader - novel mode
Object to Open Code of Conduct
subst update (1.1.3)
Status C++ API for Pretty Curved Privacy