Bozhidar Batsov (a.k.a. Bug)'s Avatar

Bozhidar Batsov (a.k.a. Bug)

@batsov.net

Hacker. Emacs Zealot. Lover of parentheses. Firebrand. Bulgarian. Not necessarily in that order. The artist formerly known as @bbatsov. Personal blog: https://batsov.com FOSS projects blog: https://metaredux.com Emacs blog: https://emacsredux.com

1,946
Followers
665
Following
2,165
Posts
27.09.2023
Joined
Posts Following

Latest posts by Bozhidar Batsov (a.k.a. Bug) @batsov.net

Preview
Mastering Compilation Mode I’ve been using Emacs for over 20 years. I’ve always used M-x compile and next-error without thinking much about them – you run a build, you jump to errors, life is good. But recently, while working o...

Friday night is the best time to learn more about #Emacs emacsredux.com/blog/2026/03...

06.03.2026 21:03 👍 5 🔁 0 💬 1 📌 0
Post image

Без коментар. 😂

06.03.2026 07:12 👍 2 🔁 0 💬 0 📌 0
Post image

I definitely didn't see this coming! #hhkb

05.03.2026 19:25 👍 0 🔁 0 💬 0 📌 0
Preview
GitHub - googleworkspace/cli: Google Workspace CLI — one command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Dynamically built from Google Discovery Service. Includes AI... Google Workspace CLI — one command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Dynamically built from Google Discovery Service. Includes AI agent skills. - googlework...

Seems AI agents finally motivated Google to release a comprehensive CLI for their Workspace apps (Drive, Gmail, Docs, etc) github.com/googleworksp...

That's going to be pretty handy going forward!

05.03.2026 11:02 👍 11 🔁 0 💬 2 📌 0
Preview
Transpose All The Things Most Emacs users know C-t to swap two characters and M-t to swap two words. Some know C-x C-t for swapping lines. But the transpose family goes deeper than that, and with tree-sitter in the picture, t...

Another day, another batch of #Emacs tips & tricks for you emacsredux.com/blog/2026/03...

04.03.2026 20:12 👍 6 🔁 0 💬 1 📌 0

Glad to hear this! And yeah - with Emacs we're all constant learners. :-)

03.03.2026 21:40 👍 1 🔁 0 💬 0 📌 0
Preview
expreg: Expand Region, Reborn expand-region is one of my all time favorite Emacs packages. I’ve been using it since forever – press a key, the selection grows to the next semantic unit, press again, it grows further. Simple, usefu...

expreg is a great alternative to expand-region, that's #TreeSitter aware. I can't believe I didn't discover it earlier! (technically speaking - I discovered it last year, but I forgot to update my init.el to actually use it :D )

Read more about it here emacsredux.com/blog/2026/03...

#Emacs

03.03.2026 15:35 👍 9 🔁 2 💬 2 📌 0
Neocaml – Rubocop Creator's New OCaml Mode for Emacs | Hacker News

Neocaml got mentioned on HackerNews yesterday news.ycombinator.com/item?id=4718...

I hope this will inspire more people to check it out!

#Emacs #OCaml

03.03.2026 09:07 👍 14 🔁 2 💬 0 📌 1

I didn't notice much of a difference to be honest, but I guess it also depends on the language that you're using (e.g. for ast-grep). I still have some note to look more closely into how Claude decides which tools to use in which context.

03.03.2026 09:04 👍 1 🔁 0 💬 0 📌 0
Post image

Developer productivity will suffer today...

02.03.2026 12:54 👍 5 🔁 2 💬 0 📌 0
Preview
Building Emacs Major Modes with TreeSitter: Lessons Learned Over the past year I’ve been spending a lot of time building TreeSitter-powered major modes for Emacs – clojure-ts-mode (as co-maintainer), neocaml (from scratch), and asciidoc-mode (also from scratch...

I've converted some random dev notes I had lying around from working on clojure-ts-mode, neocaml and asciidoc-mode to a blog post with some general advice for building #Emacs major modes powered by #TreeSitter batsov.com/articles/202...

I hope you'll find it useful!

27.02.2026 13:27 👍 4 🔁 0 💬 2 📌 0

Thanks! neocaml was a very fund journey so far and I'm really happy that it's already being used by people other than me! :D

26.02.2026 15:01 👍 2 🔁 0 💬 0 📌 0
Preview
Release RuboCop v1.85.0 · rubocop/rubocop New features #14921: Add mise.toml as source for TargetRubyVersion. (@kitsane) #14925: Add new Lint/UnreachablePatternBranch cop. (@sferik) #14942: Add new Style/FileOpen cop. (@sferik) #14939: Ad...

RuboCop 1.85 is out! (github.com/rubocop/rubo...)

It features many new cops, a built-in MCP server and many small fixes and improvements! The user docs have been reorganized and improved a lot as well!

Enjoy!

#Ruby

26.02.2026 14:58 👍 4 🔁 1 💬 0 📌 0

Brutal times for an industry that was once considered bulletproof... But I guess that if tobacco companies managed to endure, the spirit makes will manage to find some path forward as well.

25.02.2026 16:02 👍 1 🔁 0 💬 0 📌 0
So Many Ways to Work with Comments I’ve been using Emacs for over 20 years and I still keep discovering (and rediscovering) comment-related commands and variables. You’d think that after two decades I’d have comments figured out, but i...

There are so many ways to work with code comments in #Emacs emacsredux.com/blog/2026/02...

While working on neocaml, I learned more about comments than I ever wanted to know.

25.02.2026 15:46 👍 5 🔁 1 💬 1 📌 0

Oh, well... 😅

23.02.2026 12:28 👍 0 🔁 0 💬 0 📌 0
Post image

Честит ви понеделник! Какъв старт на седмицата само...

23.02.2026 06:16 👍 5 🔁 0 💬 1 📌 0
Preview
How to Vim: Build your .vimrc from Scratch You don’t need a massive .vimrc to be productive in Vim.

I must be a really bad Emacser these days, as I keep having fun every now and then with #Vim. :D

I finally finished an article on starting out your Vim config that has been on backburner for over half a year batsov.com/articles/202...

Enjoy!

22.02.2026 18:23 👍 10 🔁 0 💬 1 📌 0
300 Days of RuboCop It's a story that begins with a pull request and ends with a Zen Buddhist saying.

This must be one of the best articles about #RuboCop I ever came across lovro-bikic.github.io/300-days-of-...

It made really proud of the work we've done with the project, and the great community around it!

#Ruby

21.02.2026 20:36 👍 3 🔁 0 💬 0 📌 0
Preview
GitHub - bbatsov/asciidoc-mode: A modern Emacs major mode for editing AsciiDoc files, powered by TreeSitter A modern Emacs major mode for editing AsciiDoc files, powered by TreeSitter - bbatsov/asciidoc-mode

I've put together asciidoc-mode (github.com/bbatsov/asci...) - a super lean major #Emacs mode for editing #AsciiDoc documents, powered by #TreeSitter

It's a lighter and simpler alternative to the more established adoc-mode (also maintained by yours truly), that I've been meaning to do for a while.

21.02.2026 09:08 👍 6 🔁 0 💬 0 📌 0
Post image

CIDER - still the one dev env that Clojurians love the most... and the second one is our dear sibling project Calva!

It's great to see CIDER staying competitive for so many years, given the growing number of awesome alternatives!
#Emacs #Clojure

19.02.2026 16:48 👍 6 🔁 1 💬 0 📌 0
LLMe

That’s one of the best articles on the potential issues with relying too much on #AI tooling / #LLMs for programming blog.fogus.me/meta/LLMe.html

The #Clojure community has always been fascinating with its depth and thoughtfulness!

19.02.2026 06:55 👍 3 🔁 0 💬 0 📌 0

Вероятно е комбинация от двете.

18.02.2026 20:33 👍 3 🔁 0 💬 0 📌 0
Preview
Release v5.21.0 · clojure-emacs/clojure-mode New features #650: Add edn-mode, a lightweight mode derived from clojure-mode with data-appropriate indentation for .edn files. #439: Add interpreter-mode-alist entries for clojure, clj, planck, j...

A new version of clojure-mode is out github.com/clojure-emac...

It features a few small improvements and a dedicated edn-mode (a lighter version of clojure-mode for better performance in large files)

Enjoy!

#Clojure #Emacs

18.02.2026 20:32 👍 7 🔁 0 💬 0 📌 0

Kак ви се струва кабинета "Гюров"? На първо четене за мен е доста странна манджа с грозде, със силен аромат на гербери...

18.02.2026 14:00 👍 2 🔁 0 💬 4 📌 0
Preview
Release v0.2.0 · bbatsov/neocaml Bug fixes Fix compile-goto-error landing one column before the actual error position. OCaml uses 0-indexed columns; compilation-first-column is now set to 0 accordingly. Fix neocaml-repl-send-def...

Hot on the heels of the first "official" #neocaml release, I'm very pleased to share that neocaml 0.2 is out today with many improvements! (see the release notes for details github.com/bbatsov/neoc...)

Thanks to everyone who tested v0.1 and provided valuable feedback! You rock!

#OCaml #Emacs

17.02.2026 19:48 👍 6 🔁 1 💬 0 📌 0

So it would seem - I'm reading its documentation right now. I'm still a slow learner. :D

17.02.2026 08:02 👍 1 🔁 0 💬 0 📌 0

A problem that solves itself - my favorite kind! :D

17.02.2026 07:39 👍 1 🔁 0 💬 0 📌 0
Supercharging Claude Code with the Right (CLI) Tools I’ve been using Claude Code quite a bit lately, and I got curious – what if I asked it directly which tools would make it more productive? Not the usual suspects like ripgrep, jq or git, but tools it ...

I asked my #ClaudeCode which CLI tools it would benefit from and it wrote a blog post on the subject batsov.com/articles/202... 😁

Funny enough I hadn't even heard of some of tools it suggested.

17.02.2026 07:37 👍 19 🔁 1 💬 5 📌 1

Hmm, that's weird - likely something to do with the yasnippet configuration.

Can you open an issue on GitHub with more details about the problem your yas config?

15.02.2026 21:42 👍 0 🔁 0 💬 1 📌 0