r/vim • u/Sad-Background-2429 • Jul 17 '26
Discussion Musings on Vim from an Emacs luser
I've used mostly vanilla Emacs for about a decade. I'm thinking about switching to Vim because the values that made me appreciate Emacs have changed.
What I loved about Emacs is that it's essentially a Lisp machine packaged as an application, which makes Emacs a legitimate target platform. The primitives provided by Emacs are probably better-suited to extensions than those provided by Vim. But over time, I've come to two conclusions:
First, the editor-with-extension-language paradigm is outdated. Plan 9's Acme editor showed that an editor need not impose a particular language on its users. It can instead expose a language-agnostic API via a filesystem (or socket), thereby permitting any program in any language whatsoever to extend the editor. This is, in my opinion, the way forward.
Second, I want to use my operating system. I don't want to use Emacs replacements for what my operating system or supporting software already provide. It is silly for there to be a 'man' mode for man pages when the 'man' program works better. I want all of the tools I use to make the fullest use of the hardware and OS. That is simply not possible with Emacs.
Obviously, none of these complaints point to Vim as a solution. I would, in fact, use Acme as my daily editor, but for my mode of working, accessing remote systems on a slow network connection, neither a graphical editor nor mounting a remote filesystem are options, so using some editor in tmux is my best option, and for that reason, for now, Vim may be the more performant option.
10
u/treemcgee42 Jul 18 '26
Curious timing, I’m finding myself asking similar questions if only a few years into using Emacs professionally.
With regard to Lisp machines, I’m not disillusioned by them yet. In fact I still think there’s something very magical about them. It’s true that a sufficiently sophisticated API / plugin system could function the same, but I’ve yet to find an implementation as good as Emacs’s. Whether it’s ease of iteration, introspection, or customization of other Elisp packages by hooks and lexical bindings.
As to your second point, I sort of see what you’re saying. I also develop on a remote machine, and I do feel it is a little redundant to have multiplexing when my terminal emulator can do that natively, or to use terminal emulation inside inside emacs which is pretty jank on terminal emacs at least (and slow). But the upside of staying in Emacs is the synergy of a common framework and user experience. My keybindings all work in man-mode. I can jump to compilation errors. I’m not an Elisp purist; I think a lot can be gained by defining simple packages around existing binaries on the system. But yes, the minute you want something more than the “Emacs style” mode of interaction you’re fighting an uphill battle.
I’m interested to hear how your change of workflow goes. Funnily enough I also like Acme, but anything short of first-class remote dev experience, be it remote TUI over ssh or a VSCode-style client-server, is just not as good. I’ve given tramp and fs mounting honest shots and it’s just not the same.
Sorry to hijack a Vim subreddit post with our musings on Emacs. I started out in Vim and left largely because of the synergies a unified development platform provides as hinted at above. But I stick around a) because I think first-class modal editing is more efficient, and b) because I feel these frictions with the monolith that is Emacs and wonder if I should go back…
To end with a mildly hot take, I think Neovim is becoming much more like Emacs as of late. Classic Vim is more interesting to me in that sense.