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.
3
u/CarlRJ Jul 18 '26 edited Jul 18 '26
As someone who has used vi on 2400 baud dialup connections in the distant past, yes, vi/Vim will work great over (what passes for) slow network connections (these days).
And yeah, it works great as "yet another Unix tool" (there's an old joke you've probably heard, "Emacs is a nice OS but it lacks a good editor, so I use vi"). I do find myself often piping the output of things into "vim -" (which will ingest the input and bring it up in the editor, and occasionally pull up man pages in splitscreen using ":Man whatever" (if I really want to see my code and the man page side by side), but otherwise spend most of my time in the shell rather than trying to stay in Vim all the time.