M-x keep-lines
I used to work as a freelancer. And of course I did my bookkeeping in Emacs. One task was noting down the time I spent on each project each day.
I can already hear you saying: "Sure thing, use org-clock!" But org-clock was more machinery than I needed. Especially because I wasn't always in Emacs (yes, sad, but true) when I worked for my clients. Sometimes I was running workshops or coaching sessions away from the keyboard.
I just had an org-file with a simple list like this:
+ [ ] [2026-10-21 Wed] project A; 0,5 h; status meeting + [ ] [2026-10-22 Thu] project B; 1,5 h; coaching
At the end of each month, I would turn this list into invoices for my different clients. And since every client had their own specific template and invoicing requirements, I didn't bother to set up an automated workflow in Emacs. I just had this list and a little macro that converted it into CSV and I handled the rest manually. (Maybe today, with the power of LLMs, I would try to vibe-code some automation.)
Now, to prepare an invoice, I only needed the lines for that particular client. I did know about the wonderful function flush-lines. It just removes lines matching a regexp. I was already wondering how to negate my regexp used for flush-lines … then I thought: "Maybe there's a sibling function for this purpose?" And behold, Emacs had me covered: M-x keep-lines exists and does exactly what I wanted.
This might sound too small to bother mentioning. And maybe my workflow makes you cringe. But that's that two things that I love about Emacs: You can do things your very own way. And sometimes, improving your workflow doesn't take a package or a custom function. Just finding the command that's already there.
And that is so satisfying about living in Emacs!
(message "hello world")
Hello everyone,
I’m Badore, and I’ve been living in Emacs for over 25 years. That does sound like a long time, but there have been plenty of twists and turns along the way, and the learning never stops.
A few years ago, though, I started reading Planet Emacslife, and it feels like someone hit the turbo button on my Emacs journey. So many brilliant ideas and solutions land in my feed that I find myself increasingly humbled. And I wonder how much I really know about Emacs after all. A huge thank you to Sacha Chua for making this possible—and to everyone who so generously shares their knowledge and experience!
Now I’ve decided to share some of what I’ve learned and perhaps give something back. I’ll start by describing some of the parts of my setup that I find most useful, along with a few little tips and tricks that surprised me by actually working. But this won’t be a book or a lecture about Emacs. Just a few ideas here and there, and stories about my daily life in Emacs from time to time. I hope you’ll find it useful!