6 ms·
Evil mode is better than VIM itself and a good editor for the Emacs operating system which previously lacked one.
by 1_player 5y ago
Evil mode is better than VIM itself and a good editor for the Emacs operating system which previously lacked one.
- alpaca128 5y agoMany people constantly recommending Evil mode don't seem to get why some use Vim. No, Evil mode is not better than Vim itself. For one it's slower, defining keybindings is much more verbose, everything outside the actual text file has completely different controls, and I lose most of the seamless interoperability with other terminal tools. And it runs within an environment that tries to be literally every text-related tool by itself, making it overly complicated in many aspects.
- 1_player 5y ago> everything outside the actual text file has completely different controls Not sure what you mean by this > lose most of the seamless interoperability with other terminal tools It's not like VIM is more or less interoperable than Emacs is with other shell tools. They live in their own space, you don't (often) pipe stuff in or out of it. Though there's not much to read into my comment, it was an attempt of being witty, but evil mode is the best VIM implementation found in any editor and just for the fact that Elisp >> Vimscript, makes evil mode a better environment than VIM itself.
- apocolyps6 5y ago> They live in their own space, you don't (often) pipe stuff in or out of it. Well that's not true at least for vim. : read !FOO will run the FOO command and read the results back into the current buffer. I usually search my codebase by reading the results of a grep into a temporary buffer and 'gf'ing to the appropriate file
- rhabarba 5y agoThere isn’t much Vim can do which ed cannot, though.
- gnubison 5y agoExcept for some extra trivialities, like everything that isn't an ex command (and some that are).
- c2the3rd 5y agoC-u M-! does the exact same thing in Emacs.
- flukus 5y agoBut that goes back to the original point they made, everything outside of the actual text editing and you're in EMACS land with all of it's controls. Even with something as complete as spacemacs, the default landing page when you open it has different key bindings.
- soraminazuki 5y agoAs a Vim user who uses Emacs for note taking, I can guarantee Evil mode does far better at emulating Vim than you give credit for. In fact, the example you provided works just as well with Evil. The only built-in editing command which I notice missing from Vim is reliable undo/redo, which is sadly a fundamental Emacs limitation and a deal breaker. Apart from that, it's remarkably well-made.
- motform 5y agoEmacs 28 is finally adding modern undo-redo: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=2645ae1222db1df270276b227e5102884466ecb0 http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=2645ae... Recent versions of evil have the option of choosing undo backend, and I have found the new buildin one impeccable thus far.
- soraminazuki 5y agoMy understanding is that it's still not as good as Vim's builtin undo though. Vim has a persistent undo tree that consistently works and doesn't confuse users. AFAIK the best attempt at it in Emacs is the undotree package, but it unfortunately has a reputation of being unreliable.
- apocolyps6 5y agoI've made no statement about emacs or evil mode. I was just correcting the user I was responding to about vim having interoperability with the rest of unix
- lelanthran 5y ago> I usually search my codebase by reading the results of a grep into a temporary buffer and 'gf'ing to the appropriate file I used to do that too, I now use the Ack plugin which is almost instantaneous on a codebase that grep used to take 2s-3s long to search. The speed isn't what matters though, it's the fact that Ack only searches source code, not all files so my results is less polluted with irrelevant matches.
- apocolyps6 5y agomy grep of choice is `ag "searchterm" -G .py` or the like. I don't notice any delay, and I'm specifying the file extension
- umanwizard 5y ago> They live in their own space, you don't (often) pipe stuff in or out of it. ...huh? I pipe things into vim absolutely all the time. I don’t mean to be rude but this is exactly the sort of thing OP meant by “people recommending evil don’t understand why people like vi(m)”. whatever_command | vim - and edit the results as needed.
- acomar 5y agoand in emacs you can just redirect the command output to a buffer. or honestly, 99% of the time, I don't even bother redirecting and muck with the output directly in the eshell buffer.
- 1_player 5y agoNo reason to be rude, I have used VIM for 15 years, I know how it works. Yes you can pipe stuff in and out, you can do in Emacs as well. My point being that VIM isn't better than Emacs on this aspect, and they're not like other shell tools where COMMON usage is by piping stuff in and out; they're not like cat, more, wc. They live in their own space.
- soraminazuki 5y ago> No, Evil mode is not better than Vim itself Emacs provides a convincing Vim layer on top of a hackable LISP runtime. While there's not much point in trying to decide which one is "better," it's not an entirely unfounded point. > For one it's slower Could you be more specific? At least for me, there's no noticeable lag when using Evil mode. > defining keybindings is much more verbose This is why some use Vim? I don't see how this: (define-key evil-normal-state-map (kbd "w") 'some-function) is any worse than this: nnoremap w :<C-u>call some-function()<CR> I for one could care less about how keybindings are set, as it's just something that I write once in a config file and forget about. > everything outside the actual text file has completely different controls It's because Emacs is more of a runtime for elisp applications. As such, it makes sense to have different behaviors for each key depending on context. FWIW evil-collection does a pretty good job of making keybindings feel consistent outside of ordinary text buffers, so you won't have to fall back to Emacs keybindings these days. > I lose most of the seamless interoperability with other terminal tools This is plainly false. Shell interoperability in evil works exactly the same as in Vim. > overly complicated in many aspects This doesn't mean much without specifics. Implementation complexity isn't inherently a bad thing as long as it provides value. Besides, Emacs is a just a LISP interpreter at its core. If anything, it's easy for programmers to grasp and hack on.
- jdiez17 5y ago> Could you be more specific? At least for me, there's no noticeable lag when using Evil mode. Long-time Vim user here. I tried switching to Doom Emacs for a few months. I really, really wanted to like it. As a nerd, the infinite customizability is like catnip to me. It has a really mature plugin ecosystem and you can have a really comfy computing setup with magit, org mode, dired, mu4e, etc... But Emacs is intrinsically slow as molasses. The nail in the coffin for me was the scrolling performance. And I don't mean line-by-line. Even going half a page, or a full page at a time, pegs a CPU core and there is noticeable latency. The Doom Emacs documentation straight up admits it [0]. They recommend crazy things like turning off line numbers. Even with newfangled native Elisp compiler, it doesn't come even close to vim on alacritty. [0] https://github.com/hlissner/doom-emacs/blob/develop/docs/faq.org#why-is-emacsdoom-slow https://github.com/hlissner/doom-emacs/blob/develop/docs/faq...
- tharne 5y agoThis needs to be brought up more. The "emacs + evil" crowd tends to see vim as a set of ergonomic keybindings, but it's so much more. It's the "seamless interoperability with other terminal tools" alongside the keybindings and text-editing grammar that makes vim so powerful.