9 ms·
The extensible vi layer for Emacs
- clircle 4y agoI used Evil for 5-6 years. Meow is another great modal system for Emacs.
- tuukkah 4y agoMeow is really interesting for me as I never used Vim much. Meow seems to provide the benefits of modal editing with most seamless integration in Emacs. https://github.com/meow-edit/meow https://github.com/meow-edit/meow
- favadi 4y agoNow I finally understand the comment in another Emacs thread. I thought people was talking about the Mew - a mail reader for Emacs.
- _emacsomancer_ 4y agoIt's been years since I used Mew. Wonder about any overlap in (current) Mew and Meow users.
- hprotagonist 4y agohttps://github.com/emacsorphanage/god-mode https://github.com/emacsorphanage/god-mode
- djha-skin 4y agoJust use vim. Yes, emacs has a lisp engine, but so does nvim[1]. Really, though, using vim properly means that it doesn't need to swallow the kitchen sink[2]. Just use vim. 1: https://github.com/Olical/aniseed https://github.com/Olical/aniseed 2: https://blog.djha.skin/p/emacs-users-im-okay-i-promise/ https://blog.djha.skin/p/emacs-users-im-okay-i-promise/
- noelwelsh 4y agoNo
- lampshades 4y agoThe fall of emacs is inevitable. Don’t deny yourself any longer, brother, join us.
- tuukkah 4y agoYour link seems to agree with the original article, not with your comment: > To be most effective, Vim should be used from inside other tools. Vim inside IntelliJ, Vim inside VS Code. > In whatever tool you’re already using, if you want a better editing experience, add Vim to it. > To be very clear then, Emacs users: Rock on. Be happy. So, Vim inside Emacs a.k.a. The extensible vi layer for Emacs.
- shaunsingh0207 4y agoNeovim isn't emacs, and you can't make it emacs no matter how hard you try - Emacs is writen mainly in lisp, neovim has a lot of c. You don't have to worry about if something is possible in emacs, you can just hack onto it, on neovim you have to spend an awful lot of time seeing if something is possible - Emacs has decades of ecosystem, neovim does not - Emacs is build on lisp and has first class support, fennel is a second class citizen in neovim, users are exepcted to (rightfully) figure their own way through things. Whereas the internet is full of decades of elisp knowledge - Emacs is a proper GUI. neovim is not, yet. In the future, can neovim match and exceed emacs? yes. Is it capable of it? yes. It however, is not currently is not an emacs replacement in any way shape or form. It is an entirely different editor, with a different way of going about things, and should be treated as such. This is coming from someone who often contributes to neovim and neovide (a neovim GUI), and uses fennel both inside and outside of neovim extensively.
- giancarlostoro 4y agoA light bulb went off in my head, is Neovim able to use Emacs as a GUI yet? Why emulate VIM in 2023 when you can just become a GUI for it. I'm still waiting for JetBrains to wake up from sleeping at the wheel and implement a Neovim client for their IDE core.
- mi_lk 4y agoIt's kinda embarrassing, JB wants to push their new editor, but even months after public beta, the vim emulator is still barely usable, and afaict it's maybe like 1-2 people working on this. I don't get it, if you are targeting developers, why is it that having Vim keybindings not a top priority? Or am I living in my own circle? https://youtrack.jetbrains.com/issue/FL-10664 https://youtrack.jetbrains.com/issue/FL-10664
- giancarlostoro 4y agoMy thinking is, if you focus heavily on letting your editor be a client for Neovim, you now can pull in all the stubborn VIM users easily. "Look! It behaves the most like vim that any editor you've ever used does!" I fully agree with you. I'm not sure why they're asleep at the wheel.
- Ankhers 4y agoYou may very well be living in your own circle. My anecdata is that most engineers use VSCode these days. In my current organisation I am the only person that uses Emacs that I am aware of (and I use evil-mode). I know a handful of people use (n)vim. But by far the most common editor I see being used is VSCode.
- faizshah 4y agoI work on a frontend team, most of my coworkers use VSCode and very few use the vim plugin for it. On our backend teams I believe IntelliJ is still the most popular editor, it’s really uncommon to find anyone using vim or eMacs for work. Personally I just use Jetbrains IDEs w/ IdeaVIM for most things because I can’t be bothered with all the plugins and configurations I would rather my IDE just work out the box in any language.
- bin_bash 4y agoI want a vi layer for helix. I don't want to have any vimrc configuration, just open my editor and have LSP and everything working immediately. I just can't figure out how to switch to helix keybindings.
- deleted 4y ago[deleted]
- eNV25 4y agoI learned helix's keybinds pretty quickly, it's not too difficult. Though, I don't really use it anymore, I prefer Neovim.
- vulcan01 4y agoThere is this configuration: https://github.com/LGUG2Z/helix-vim https://github.com/LGUG2Z/helix-vim This switches most keybinds to be vi-like.
- weavie 4y agoVi commands are verb-noun (cw - change word). Helix are noun-verb (wc - select the word then change it). Learn to use multiple cursors in Helix - many of the things I have found lacking from Vi - eg pressing . doesn't work the same way in Helix - can be made up with more or less by using multiple cursors.
- aidenn0 4y agoHelix was very disappointing for me; maybe it's just still immature (I tried it a few months ago and posted to the chat room several examples of things that were trivial in vim but had no helix equivalent; people there seemed receptive to making then work). kakoune is much closer to a good noun-verb replacement, at least for now.
- yodsanklai 4y agoI used that settings for a few years, then tried to move entirely to vim, and now I'm very happy with vscode + vim. I like vim as a touch typer, I think it's a setting that minimize end motions. It's also very convenient in the terminal. On the other hand, I think it's not convenient as an IDE: too many shortcuts, clumsy integration with LSPs, especially when you need to work with different languages. For me it works best as a light, universal, editing mode on top of a modern solution for an IDE. That being said, I wonder if I wouldn't be better off moving away from vim entirely and get used to a simple setting which works straight out of the box.
- bheadmaster 4y agoNeoVim has got native LSP support, and works pretty well for me out-of-the-box for most languages. LSP servers need to be installed externally, but I hope they manage to bundle them somehow in the future. LunarVim already provides automatic LSP server installation.
- bobbylarrybobby 4y agoNeovim also has a server mode that lets it be used to drive other editors, so you can get the best of both worlds.
- bongobingo1 4y agoYes, neovim + vscode is quite good, better than a "vim emulation mode". I believe one of the maintainers (justinmk) uses this as his primary workflow, or at least "at work" workflow? Not all plugin work, mostly the esoteric ones that spawn many buffers etc, but all your motions etc work fine. Personally I find vscodes text rendering not as nice as alacritty for what ever reason, otherwise I would probably use it as my primary interface.
- filmor 4y agoI've been using Mason for LSP installation, works pretty well.
- 4y ago
- jrootabega 4y agoEmacs also has a vi layer built in: viper mode.
- distcs 4y agoViper mode is terrible though. Half the things I am used to in proper Vim do not work correctly in Viper mode. I don't remember those annoyances anymore but someone who has recently tried viper mode may be able to share the details. (Edit: Turns out I do remember some of the annoyances. See the grandchild comment below where I have noted some examples.) I found Evil mode is so much better at emulating Vim than viper mode.
- jrootabega 4y agoviper is just a vi layer, not vim, as far as I know. Being able to have basic vi movement and operators is where most of the value in vi[m] layers comes from, IMO, and I haven't yet found any problems there. The most recent bug I've been aware of in viper (not that I am any authority here) was when the Emacs maintainers broke basic Emacs alt/meta key sequences when viper was active, and that happened because they just weren't thinking/caring about viper, which is the reason I spoke up here in the first place - people don't really think about it and it gets neglected. It's a vicious cycle.
- distcs 4y agoSo I fired up Emacs: emacs -q M-x viper-mode RET Chose expert level 1 for beginners so that it is closest to Vi behavior. (Recommended level is at least 3 but that does not make a difference for what I am about to explain.) C-x C-f foo.txt RET i hello world RET hello world RET hello world RET ESC Looking good so far. gg Does nothing!! Okay no problem. Let me try: :0 RET Good. I am back to the top line. V Instead of starting visual line mode, it brings up find file minibuffer. So that's 2 problems already from 2 minutes of using Viper. I have to admit though that I come from Vim (not Vi) so maybe my expectations are not fair for Viper. Is gg a Vi command or Vim? I can't remember. But I expect these basic things to work. It is this kind of stuff that used to trip me up often that I discontinued Viper and went with Evil. BTW this list of annoyances in Viper keeps going on and on. - dab, da(, di(, dib, etc. don't delete a block. - gqq, gqgq, etc. don't reformat paragraphs. - * does not search for the current word - and so on and so on Maybe I am being unfair to Viper but I guess you can see why in 2023, a Vim user might want to skip Viper completely and go straight to Evil.
- heroytgoogle 4y agoI use Doom-Emacs which is just everything emacs can do + vim
- adr1an 4y agoThis, spacemacs development is a bit stalled. Also, I would just use vim if it had TRAMP mode.
- ephaeton 4y agoI've shot out emacs vs. vi back in 1999 and settled on vi after preferring emacs initially. Still, I think emacs is the better editor platform. every couple years, I try the available options in emacs for a vi input layer. None of them come close once you start typing quickly. It's way too easy for these emulations to stumble over quickly followed inputs. So in the end, I'll agree with djha-skin - just use (n)vim.
- cyrialize 4y agoI used to use emacs-evil but found myself having to remember both vim and emacs keybindings. That may be my own fault since I probably wasn't using ALL the settings / extra packages that make vim keybindings work everywhere. I've since switched to god-mode [0], which just turns emacs keybindings into modal ones. I find it works quite well. I think emacs keybindings are easier to remember but harder to use. Turning them modal solved that for me. (For example, Ctrl + F for forward, Ctrl + B for backward is easy to remember, but hjkl is right by your fingertips). Side-note, it looks like god-mode was archived and then made part of the emacs orphanage. I started using it years after it was archived before it was part of the emacs orphanage. Noticed no issues, since again all it does is just make emacs keybindings modal. [0]: https://github.com/emacsorphanage/god-mode https://github.com/emacsorphanage/god-mode
- luispauloml 4y agoAlthough it is in the orphanage, the current maintainer is very receptive to contributions. I believe there isn't much activity because it is very stable, and there aren't that many users to find its flaws. For me, the biggest problem is remembering to turn it off before starting editing, but I guess that fault is on me, and it must happen to everyone at least once in a while.
- _emacsomancer_ 4y agoThere's active development of god-mode still though[0]. Mentioned elsewhere here, I've found meow[1] to be really interesting/good. And it leverages some of what makes god-mode nice (from their list of key features: "Minimizes modifier usage (e.g. `SPC x f` for `C-x C-f`) inspired by god-mode") [0]: https://github.com/emacsorphanage/god-mode/commits/master https://github.com/emacsorphanage/god-mode/commits/master [1]: https://github.com/meow-edit/meow https://github.com/meow-edit/meow
- didntreadarticl 4y agoNotepad++
- pksebben 4y ago<< cat
- atahanacar 4y agoButterflies?
- mcbuilder 4y agoI've had a macro for that in EMACS for the past 30 years.
- lummm 4y agoI've always had view-mode come on by default, and I have a bunch of custom keybindings for view mode which are nicer on the hands when you're just reading text. So (add-hook 'find-file-hook 'start-view-mode) to turn it on automatically. (defun view-mode-background () (if (bound-and-true-p view-mode) (face-remap-add-relative 'mode-line '((:background "#9400D3"))) (face-remap-add-relative 'mode-line '((:background "red"))))) ^ this helps a lot to know whether or not you're in view mode And then: (defun view-mode-keybindings () (define-key view-mode-map (kbd "j") 'View-scroll-line-forward) .. etc
- lillywastaken 4y agoThere's also meow-mode[1], which isn't a vim emulator as such, but it is a different modal editing layer for Emacs which is a lot faster and has a lot of neat ideas. It doesn't interfere w/the stock keybinds at all though, which is much nicer imo (I use a 'hybrid' editing style generally) 1: https://github.com/meow-edit/meow https://github.com/meow-edit/meow
- clircle 4y agoWhat I like about Meow is that it replaces a lot of stuff for me -- Evil, evil-collection, general, expand-region, and maybe something else. And it does not seem to be as invasive. But the killer feature is meow's macro system
- LanternLight83 4y agoI've been seeing posts about packages like God Mode, Boon, and Meow[1] for a long time, and just haven't set aside time to check Meow out yet bit am very exited to c: 1: https://esrh.me/posts/2021-12-18-switching-to-meow.html https://esrh.me/posts/2021-12-18-switching-to-meow.html
- deleted 4y ago[deleted]
- srcreigh 4y agoHaven’t tried others, but I really like boon. It’s so simple and it has the verbal actions like delete I’ve patched the boon code to support switching between Dvorak and QWERTY
- icelake111 4y ago[dead]
- worldsavior 4y agoWhy not just use vim?
- deleted 4y ago[deleted]
- ParetoOptimal 4y agoMake sure to either: - use evil-collection or - be prepared to design vim keybindings per mode or - instead use https://github.com/meow-edit/meow https://github.com/meow-edit/meow
- 2dmodta04286 4y ago[flagged]
- dbtc 4y agoHere's a good place to recommend the browser extension vimium (and vimari for safari).
- Blackthorn 4y agoIt's not evil but there is also a built in emulation for vi called viper. I've never used it to emulate vi but I have used it to emulate ex, which is a part of vi. I don't know if anyone else feels this way but when I started with emacs a long time ago I thought that ex commands were much more productive for things like searching and replacing. For anyone who knows vi, that is for example :%s/regex/replacement/ So I just bound the ex prompt to C-c : Maybe emacs does better for search/replace these days. What do others think?
- susam 4y agoFor search and replace, the ex substitute command (:%s/pattern/string/[flags]) does feel more convenient and flows out smoothly from the fingers while typing such a command. For search and replace operations, it is indeed very productive. However the incremental search (C-s) of Emacs goes much further than that. It is packed with features. While it has too many features to enumerate in one comment, I'll just pick one thing about it that I have found useful and quite enjoyable. It is the set of various toggles Emacs incremental-search comes with. Some of those toggles turn out to be very useful in special circumstances. Say, I have a source code file that is doing some regex-based work. Both the regex "f.." and the strings it matches like "foo", "fox", etc. occur in the file. Now say, I want to search for the regular expression pattern "f.." (not the strings it matches). I can of course do that simply with: C-s f.. After searching for that regular expression, I decide that I now want to search for strings that match the regex pattern "f..". Now I can simply change the string search to regex-based search with this toggle: M-r As another example, let us say, I start searching for the string "web_server" with this key sequence: C-s web_server RET But then I realize that the current code has the words "web" and "server" written together in all kinds of notation like "web->server", "web::server", "web-server", etc. and now I want to match all of them. In Vim, I would have to cancel the current search and write a new search expression, perhaps something like /web.\{1,2}server or maybe /web[-_:>]\+server depending on what we need. In Emacs, I can do it with this toggle: M-s w And now it would match "web->server", "web::server", "web-server", etc. I know you specifically mentioned search-and-replace, not just search. The conveniences I illustrated above are available equally well in search-and-replace too because converting a currently ongoing search to search-and-replace in Emacs is yet another toggle: M-%
- ashton314 4y agoA personal anecdote: I grew up using Emacs—I think the first time I fired it up was when I was about 7 and was learning how to use mutt to read and send email. I used Emacs exclusively—I did learn the basics of vi bindings but never seriously used it—until I was about 24. I got a nasty case of RSI from using a mouse too much for too long. I went all-in on my ergonomic setup: I got a split/tented keyboard, a standing desk, went to physical therapy, etc. I also took a look at my keystrokes and decided to 1.) get a keyboard with a thumb cluster so I could put modifier keys on my thumbs, and 2.) switched to Evil mode for the Vim bindings. Life is awesome now. I believe Emacs+Evil is the best of both worlds. I initially poo-pooed modal editing (why do I have to distinguish between inserting and appending?! It's so stupid!) but I've relented—using Vim bindings is like having a little composable language to talk about text editing. It's amazing. Evil is incredible too. I'm still tweaking my setup to this day. But that's the thing—I like being able to tweak my setup to get to the maximum ergonomic configuration for me. I think there's some room for some better defaults and/or starter kits in this space (e.g. switching to vterm-mode should automatically take you out of Evil and drop you into the normal Emacs bindings, etc.) but things like evil-collection makes it so that I don't have to switch in and out of Vim-movement thinking. Some things that switching to Evil-mode feasable: - I started using the GUI so that Emacs could distinguish between e.g. Ctrl-Shift-x and Ctrl-x—it's nice having richer modifier combinations at your disposal. - Having Ctrl-z bound to `emacs-evil-state` is a life-saver in situtations where you want to switch back to Emacs bindings for whatever reason. As I understand it, Evil is the best Vim emulation out there bar none. E.g. I can use `/` as a motion command: `c/foo <RET>` will delete from the point to the next occurrence of `foo` and put me into insert mode. All this without loosing any of the customizability and the larger package ecosystem of Emacs.
- rcgorton 4y ago[dead]