r/emacs•
surveypoodle

Hypothetically or technically, what are some things that Emacs can do that Neovim/Vim cannot? (Not package availability).

emacs-fu

As I'm reading about the differences between the two, my understanding is like this:

Emacs: The C source code implements the editor primitives and a Lisp runtime. The main editor is then written in that Lisp. Packages are written in Emacs Lisp, and Emacs modules can be written in C and loaded at runtime. Vim/Neovim: The C source code implements many parts of the editor, and then the Vim Script or Lua Engine exposes some parts of the API. Plugins are written in Either Vim Script or Lua.

So this must mean for a certain functionality to be implemented in Vim/Neovim, an API for it must already exist, and whether or not something is possible to do in it is somewhat dependent on what APIs are made available by the core developers. Meanwhile, since Emacs is written in Emacs Lisp itself, any existing Lisp function can be be overriden and changed, even the core can be customized. Since it's also possible to load C modules, even low level customizations are possible.

Did I reasonably understand the architectural and technical differences between the two? If so, what are some examples of things that are technically possible to do in Emacs but impossible to do in Vim/Neovim (I mean without recompiling the C code)? Just to be clear, I am not asking about things that are not possible simply because a package/plugin doesn't exist, but in a more abstract sense.

Posted Mar 14, 2026, 3:29 AM UTC

2347
Loading comments…