"Meow" mode for Emacs


– an interesting read and specifically name drops Kakoune.

The more I read about meow the more I’m impressed with its design and approach! I’d be really interested to hear about anyone’s experience with it with a kak background. Thanks for sharing this!

I will be playing around with it, I use emacspeak for TTS, and meow defaulting over mostly to built-ins makes the specialization needed far less than like Evil. Since it doesn’t come with a keymap really, I am thinking about building a kakoune keymap on top of it.

Does meow implement multiple sub-selections within multiple selections (and so on, and on, à la structural regex) like kakoune does?

A follow-up post by the same author:


I tried it out for a day or two, but ultimately went back to Kakoune for editing.

Here’s my take:


  • The navigation is similar to using vim-sneak, and doesn’t require you to use chords to do multi selection. I felt this was much nicer for my pinky.
  • It remaps all C-x and C-m-x commands to space, so you do not need to chord those either. Also very nice for my pinky.
  • Overall meow itself was very fast and easy to customize and played well with emacs.


  • Some keys would randomly reassign in intuitive ways, C-g somehow became C-M. Not sure if it has something with me not knowing emacs.
  • Emacs LSP support is poor. It is slow, and does not properly highlight all keywords, so in the following code:
Dream.run stuff stuff stuff
 @@ Dream.log
 @@ Dream.handler
 @@ ...

I’d be able to get info for Dream.run and Dream.handler but not @@ or Dream.log, which is a dealbreaker.

Not only that, but the lsp was often slow and showing outdated information.

In general, emacs feels like the antithesis of Kakoune. Kakoune is a slim, fast editor built to be very operable with the rest of unix. Emacs feels more like an operating system, and invites you to do everything from email to browsing within it.

Yep, C-g in emacs acts as a sort of key lisp cancellation hotkey. Like mashing C-c in a terminal app.

Which LSP mode? Eglot? Never experienced slowness with Eglot across the few dozen languages I use.

Ah makes sense then.

I used Eglot.

It was slow with eldoc. Hovering a function would have a delay of a second before displaying the information. I found that distracting, so I tried disabling it and only have that information be on demand, however often it would still have the same timing as the hover functionality. So selecting a function, calling eldoc, moving to a different function and calling eldoc again would display outdated information for a second before displaying the correct information. It could be that I set it up wrong?

More importantly there were just some functions that I couldn’t select and get type information for in OCaml.

I also just remembered that eglot only supports one LSP at a time, which for frontend work can be quite limiting.