← Back to context

Comment by iLemming

2 months ago

Neovim is a text editor. You can't compare Emacs with just a text editor. Just like you can't compare Emacs with a browser, music player, note-taking app, email client, etc. Emacs, first and foremost, is a Lisp REPL, with an embedded text editor. Without deeply understanding and respecting this aspect it is difficult to appreciate what Emacs could be, what you can do with it.

Imagine this — one morning I was watching my colleague showing me a bunch of things over a Zoom video, and I didn't feel comfortable interrupting him with "wait, don't scroll away, I didn't get that, allow me to read it", "hold on, I'm taking notes", etc. I sacrificed my lunch break to write a small Elisp command that runs tesseract to OCR the image in the clipboard. Now, I don't even have to ask my colleagues for explanations or tell them to share the url they are currently browsing — I can just grab it with a couple of keystrokes to make a note. And that's just one, single, isolated example. It cost me twenty minutes of my time. Twenty minutes of investment that paid itself many times over already. And I have tons of similar examples.

And this is why I stay away from eMacs.

  • "Staying away" implies understanding the perils or benefits, I don't think you ever fully understood either. My point is not to bash on your choice of an editor — I use Neovim myself (it serves me well occasionally).

    You "stay away" from Emacs most likely because you don't know any better. Do you use your editor to read and annotate pdfs? Or watch videos? Or manage the library of your ebooks? Or track your expenses? Or control project management like Jira? Or keep your knowledge base and note-taking? Or interact with LLMs? Or explore APIs like Postman? Or keep your spaced repetition flash cards like Anki? Or use it for chat over platforms like Telegram and Slack? Or find and read RFCs and manpages? Or to perform web-search, search through your browser history, Wikipedia, Youtube? Do you have etymology lookup, thesaurus, dictionaries, translation? Or to order pizza? Or measure distances between coordinates on a map? Automate things based on solar calendar or moon phases? Manage all your configs, aka dotfiles? List, browse and code review Pull Requests, etc., etc.

    Now tell me, what a sane person ever exposed to all this usefulness would ever reject it? Only those who never had patience to reach it, or those who are oblivious to the possibilities.

    • I only know my perspective:

      I get the appeal of Emacs but this is exactly where it falls short for me. It’s brittle, monolithic, and too controlling (restricting).

      Emacs owns the entire platform. If you want to use an external tool, you have to wrap it in Emacs abstractions. That means dealing with buffers, subprocess plumbing, or writing Elisp bindings. You’re not really integrating; you’re translating everything into “Emacs-speak.”

      Meanwhile, tools outside Emacs—like in a Unix shell—are composable by default. I can swap fzf for peco, tesseract for ocrmypdf, or even Neovim for Helix without rewriting my entire environment. That’s real modularity. With Emacs, everything is wired together internally, so small changes can break big things.

      And yeah, I can technically replicate workflows inside Emacs, but often it’s reinventing worse versions of tools I already have—eshell instead of zsh, eww instead of a browser, magit instead of plain git in a terminal. That makes it feel more like a self-contained OS than a part of the system.

      I’d rather keep my editor focused and compose my environment around it—not inside it. Plus, I rather do certain things in Lua, Python, shell, etc. where I can call it and run it through awk, sed, rg/grep, and so on. I can port that to any other platform and adapt it quickly rather than try to rewrite Lisp.

      So... to answer your points specifically --

      Do you use your editor to read and annotate pdfs? -- Sure. Using my PDF editor.

      Or watch videos? -- I think that's a little easier in shell (mpv, vlc) or directly in a browser.

      Or manage the library of your ebooks? -- Calibre

      Or track your expenses? -- I have a tool for that.

      Or control project management like Jira? -- Jira or their respective tool(s).

      Or keep your knowledge base and note-taking? -- Neovim+Lua

      Or interact with LLMs? -- There's a shell script for that, browser, or the ChatGPT application.

      Or explore APIs like Postman? -- curl, wget, ... or Postman itself.

      Or keep your spaced repetition flash cards like Anki? -- Inside Anki. I have a simple shell tool that goes through them as well.

      Or use it for chat over platforms like Telegram and Slack? -- In their respective apps?

      Or find and read RFCs and manpages? -- My browser, or the shell.

      Or to perform web-search, search through your browser history, Wikipedia, Youtube? -- I think it's called a browser. Or the shell.

      Do you have etymology lookup, thesaurus, dictionaries, translation? -- Browser. Or the shell.

      Or to order pizza? -- Browser. Or the shell.

      Or measure distances between coordinates on a map? -- You got me there.

      Automate things based on solar calendar or moon phases? -- You got me here, too. I don't have a need for this.

      Manage all your configs, aka dotfiles? -- stow, git

      List, browse and code review Pull Requests, -- browser, git

      etc. -- etc.

      etc. -- etc.

      Now tell me, what a sane person ever exposed to all this usefulness would ever reject it? -- I feel like I answered this.

      Only those who never had patience to reach it, or those who are oblivious to the possibilities. -- I'm aware.

      Thanks, this was an entertaining 10 minutes to write.

      1 reply →