5 ms·
I did the same experiment and came to the same conclusion. There’s really nothing killer in Emacs that makes it a huge sell over just using vim which is a much
by softirq 4y ago
I did the same experiment and came to the same conclusion. There’s really nothing killer in Emacs that makes it a huge sell over just using vim which is a much better editor unless you just love Emacs lisp. Emacs also has some glaring issues - tramp being a major one. It’s slow and very unreliable.
Vim is much more in line with the Unix philosophy. It’s a great editor that can be extended with fzf, ripgrep, lsps, git etc. Emacs has three versions of every plugin and they’re all usually not as good as the thin vim wrapper around fzf etc. If you’re not editing and need email, mutt is a great email client. Irssi is a great chat client. Emacs is very much an all or nothing computing environment.
I am glad I tried Emacs though, because I did love which-key and ended up adding it to my Vim config. And Emacs is slightly easier to quit?
ADVICE: Try both Emacs and Vim vanilla before you do anything else. Downloading a "distro" is really doing yourself a disservice by not showing you just how much either can do without the chrome. And for the love of RMS DON'T USE VSCODE.
- kqr 4y agoHuh, my experience is the other way around. The "killer" of vim is the control scheme, and evil mode ports that over very faithfully to emacs. Then you get the best of both worlds. Why would you use vim other than in very barebones environments where you cannot access your own config? (I also don't see how tramp is an issue -- it opens up workflows I wouldn't even have access to without it!)
- softirq 4y agoWhy would I want to run an emacs layer adding more latency to my work to turn Emacs in to Vim when, as I said, I can do everything in Emacs I can do in Vim. > (I also don't see how tramp is an issue -- it opens up workflows I wouldn't even have access to without it!) Because it will randomly freeze and it's single threaded, it's slow, and it's also not novel. Vim can also edit files over SSH, VSCode can run itself remotely.
- School-Cotton 3y ago> I can do everything in Emacs I can do in Vim Can you immediately jump to the source code associated with any key binding, read it, debug it, modify and reload it, etc., regardless of whether it comes from the base distribution or a plug-in? For me that’s the killer feature of emacs.
- mr337 4y agoI am in the same boat. Been working a lot with C++ recently and could not get debugging working. Threw in the towel and loaded vscode in about 2 hours had everything humming along and being productive. I'm pretty sure I did the wrong thing and started with a setup like Spacemacs where random stuff would break and wouldn't even know where to look. Thought I can't seem to loose the muscle memory of vim bindings so evil is a must. On my next round will try dooms or centaur so I learn more under the hood. I do miss magit and helm.
- EnigmaCurry 4y ago> some glaring issues - tramp being a major one. It’s slow and very unreliable. Over SSH? Did you turn on ssh connection sharing in ssh config? > ControlMaster auto > ControlPersist yes > ControlPath /tmp/ssh-%u-%r@%h:%p massive speedup when you do this, otherwise it starts a new connection for every operation.
- softirq 4y agoYes, and it's not that it's just slow, it also freezes Emacs completely when it borks (and it does bork). I also found that none of the emacs terminals could correctly display my prompt and I ended up writing a bunch of bash conditionals to make my prompt dumber to work in Emacs. Just worked out of the box with Vim's :term.
- jamespo 4y agoAre you using tramp on a LAN or halfway round the world with 200ms latency and poor bandwidth?
- chlorion 4y agoA common thing people run into with Emacs is using the "shell" under the impression that it's a terminal emulator. You want "term" for a proper terminal emulator that can handle fancy terminal stuff. The "term" terminal emulator can even run TUI stuff like nano, and even vim itself!
- spudlyo 4y agoTramp is fast for me as well, it did take some work though. I had to configure it to use my controlmaster options from my ~/.ssh/config, set tramp-verbose to 0, set remote-file-name-inhibit-locks to t, and finally set vc-handled-backends to just Git. I'm glad I spent the effort to make it fast though, because now it's pretty magical.
- erksa 4y agoUse both heavily. Vim is fantastic for editing one off files. Emacs on the other hand is fantastic to work on a computer for a long period of time. I do use evil mode, as I do think it's a much better way to work in a file. Project management, magit, org-mode, being able to edit functionality of the editor within couple of mins to adjust for an temporary change/or indefinitely is what keeps me coming back to emacs. I've tried vim variations that build in project management and all I'm missing from emacs, but left it at some own written telescope functions to cover base needs. Love for both, but to me they are not comparable. (Maybe because I picked up emacs at the same time a good friend picked up vim, and it's been a parallel editor journey for 6+ years)
- softirq 4y agoVim has terminal support, gdb support built in. We have vim plugins maintained by the top Vim plugin specialist for git and project management. We have vimwiki, markdown, org mode support. We have fuzzy finding, autocomplete, lap support. I really don't think you can reasonably tell me you can't live in Vim, when I have had the same session open editing the linux source tree for like two months now.
- schemescape 4y agoMaybe a Vim expert can help me out. I’ve used Vim for a long time, but never with any plugins, and only a few lines in my .vimrc. My problem is that the syntax highlighting, specifically for TypeScript is pretty bad. I have a regular expression (for parsing front matter) that seems to cause Vim’s syntax highlighting to go haywire (it stops and sometimes crashes). Is anyone aware of a way to get more reliable syntax highlighting in Vim, ideally with a minimum of fuss?
- 0zemp1c 4y agousing lsp with typescript-language-server? most of the neovim setup scripts (lazyvim etc) get this set up automatically
- 4y ago
- mbork_pl 4y ago> There’s really nothing killer in Emacs 1. Org mode 2. Magit 3. Wdired 4. Synergy between various components (shameless plug: https://mbork.pl/2023-01-30_The_benefits_of_everything_being_a_buffer https://mbork.pl/2023-01-30_The_benefits_of_everything_being...)
- softirq 4y ago1. Org mode - I will admit that I'm not a fan of org mode and find it to be oversold and another time waster for people who are already wasting time configuring their editors. I personally use vimwiki, there is a vim plugin for org mode. 2. Magit - Tim Pope is the pope of Vim plugins and fugitive is easily as good or better than Magit. I have never had any issue doing any sort of complex task in git or fixing conflicting using fugitive. 3. Wdired - Tim Pope again has vim-vinegar to improve netrw. Never had a problem or thought about manipulating directories inside of Vim. 4. Again, if you believe in the Unix philosophy then you have to admit that Emacs is simply bloated and trying to do too much and therefore is not really the best at anything. And more importantly, if there's something that Emacs can't do you've screwed yourself because you haven't built an environment around many distinct tools on the command line and it's going to be awkward to integrate.
- kqr 4y ago> if you believe in the Unix philosophy then you have to admit that Emacs is simply bloated and trying to do too much and therefore is not really the best at anything On the contrary, Emacs tries to do just one thing: provide an Elisp runtime for other applications. It does this fairly well. Do not confuse Elisp applications like evil, org, calc, magit, etc. with Emacs itself!
- ragnese 4y agoYep. If you see Emacs as a text editor with lots of features, then it's doing lots of things. But, if you see Emacs as a platform that comes bundled with some apps by default, then its "one thing" is to be a text-oriented app platform. The whole "do one thing" slogan is kind of vacuous anyway; e.g., what if my "one thing" is "implement all WWW standards to be able to use any web page"? Is that still "one thing"? If not, then wouldn't implementing only "one" part of WWW be useless?
- BeetleB 4y agoThe tell in your message (and those in general from vim users), is insisting on treating Emacs as an editor, and comparing it primarily on that benchmark. There are no shortage of Emacs lovers and users who will accept that vim is a better editor. You didn't need to try Emacs to gain that appreciation. The other tell (common on HN, which has a clear selection bias), is comparing Emacs to an IDE like VS Code. Many, if not the majority, of Emacs users are not primarily using Emacs for coding. > Vim is much more in line with the Unix philosophy. Neither follows the Unix philosophy well. And as many people have pointed out, most of the Unix utilities are poor at following it well.[1] The amusing thing about the Unix philosophy is that when you stay within Emacs, the Emacs environment is a much better exemplar of the Unix philosophy than Unix and its tools are. It is a lot easier to compose functionalities in different Emacs packages than it is in UNIX. I was using a Mastodon client for Emacs and wanted to render LaTeX formulae into rendered equations. I'm an average elisp coder and I got this working in under an hour by composing different Emacs packages. There are various ChatGPT clients out there. I wanted to integrate it with my Emacs email client (notmuch). It's not a lot of work. I doubt one could integrate things into mutt as quickly/easily. When reading an email in Mutt, how easy is it to quickly do a Web/network query on a selected text, perform analysis on the result, and display the outcome within Mutt? The analogue is fairly easy in Emacs, despite the mail tool(s) there not having any functionality to do this. As for Mutt in general: I used it for about a decade. While it has a soft spot in my heart, there is a reason I switched to an Emacs client - before I knew anything about customizing Emacs with elisp. There were lots of gaps in Mutt that other clients out there filled. I miss nothing from Mutt, other than the color scheme. In many of these cases, there are simply no quick, viable solutions outside of Emacs. People spend a lot of time doing these things in Emacs because it enables them to do more than they could otherwise. Imagine someone who doesn't know any programming complaining about someone else who does. To them they just see a person "wasting" all their time on another "tool". [1] An example: https://www.johndcook.com/blog/2012/05/25/unix-doesnt-follow-the-unix-philosophy/ https://www.johndcook.com/blog/2012/05/25/unix-doesnt-follow... I've had the same visceral reaction when dealing with grep and find. Overly complex and bloated (albeit extremely useful).
- 0zemp1c 4y ago[flagged]
- pmoriarty 4y ago"Emacs has three versions of every plugin and they’re all usually not as good as the thin vim wrapper around fzf etc" This is a bold claim. Not that fzf isn't good, but I'd like to hear about some specific ways in which fzf is better.
- vvillena 4y agoThe strength of Emacs lies in customizing it to the user's needs. A clean installation of Emacs is not representative of what Emacs can be, but the various modern configuration frameworks such as Spacemacs and Doom Emacs offer a window into their creators' visions of what Emacs can be. And from there, it's easy to slowly transform their vision into your own. These frameworks offer good defaults that lean towards having lots of features packed in, but it's easy to take away everything you don't want. Both Spacemacs and Doom Emacs can be stripped to almost nothing, leaving you with just a standard for organizing your custom configuration.
- bitwize 3y agoVim is pretty much the best of both worlds: the ease of use of vi combined with the small footprint of Emacs!