11 ms·
Why I switched from Vim to Emacs
- Dowwie 10y agoI thought political posts were off limits this week?
- dindresto 10y agoYes, but religious posts are not. :P
- sctb 10y agoTaking this back into serious territory for a moment, there's an update on no-politics-for-a-week: https://news.ycombinator.com/item?id=13131251 https://news.ycombinator.com/item?id=13131251.
- melling 10y agoAnd god-mode does exist: http://chrisdone.com/posts/god-mode http://chrisdone.com/posts/god-mode
- davexunit 10y agoMight as well use this as an opportunity to speak out: Why does Hacker News censor topics about real issues in the tech industry? Why is Sam Altman a Peter Thiel apologist while saying that politics aren't welcome here? Why does Sam Altman think that ethical issues are divorced from technology?
- qwertyuiop924 10y agoFor the rest, I don't know know, but as for why HN doesn't like politics, it's because of the fear we'll catch the Reddit virus.
- sshrinivasan 10y agoIts almost 2017. Nobody cares.
- mmartinson 10y agoWhy comment at all if you're going to be merely dismissive and nonconstructive?
- 0xCMP 10y agoActually many people care enough to put on the front page. Seems not only are you rude, but you're wrong.
- WildUtah 10y agoIt's almost 2017 and vi and EMACS are still the only two editors that matter. Who could have expected that when they were both first released just over 40 years ago?
- spraak 10y agoHappy birthday!
- melling 10y agoHe still uses vim bindings. Emacs is an editor construction kit. It can become vim, or another editor. What we really need is a 21st century editor construction kit with Minority Report gestures, eye tracking, and voice input, as well as the keyboard.
- msoucy 10y agoAs long as they're completely optional... - Gestures might not make sense in many locations (tiny cubes with limited space, for instance), or prove problematic for Deaf individuals (learning, effectively, another signed language). That said, I totally want to select text, make a yanking motion with my hands, and have it get put onto the clipboard. - Eye tracking would be an immediate no-go in any sort of closed facility - Voice input is also a no-go in closed areas, and would be extremely annoying in cube farms - far more distracting than they already are.
- yarrel 10y agoWe just need that support in Emacs...
- pmoriarty 10y agoHere's voice input for emacs: [1], [2] And for vim (inspired by [2]): [3] I'm sure gesture tracking would probably not be too hard, using any of a number of VR input devices now on the market. Eye tracking would be harder, as I'm not aware of any consumer-level eye-tracking technologies out there. You could certainly have head-tracking pretty easily, though. Now integrating this in a way that would actually be fluid, natural, and useful is another story, though. Also, I'm personally not sure how many big body movements I want to be doing while using my computer (unless I'm trying to exercise, play a game, draw, conduct music, or lose weight). Ideally, I'd want to be as motionless as possible while being as comfortable as possible and while having maximum flexibility and efficiency of input. Keyboards are pretty good for that. [1] - https://www.youtube.com/watch?v=77zPOyMmMPQ https://www.youtube.com/watch?v=77zPOyMmMPQ [2] - https://www.youtube.com/watch?v=8SkdfdXWYaI https://www.youtube.com/watch?v=8SkdfdXWYaI [3] - https://www.youtube.com/watch?v=TEBMlXRjhZY https://www.youtube.com/watch?v=TEBMlXRjhZY
- huac 10y agoI'm considering picking up Spacemacs just for org-mode. Is there anything for vim that can match those kinds of capabilities?
- dude01 10y agoI'm a vim-guy. I've been using vimoutliner (https://github.com/vimoutliner/vimoutliner https://github.com/vimoutliner/vimoutliner) for my todo lists, since I put my notes inside my todo lists. With vimoutliner, you can make any line have a checkbox [_], and it understands that a top-level is done only if all of its children are done.
- pmoriarty 10y agoI tried vimoutliner (and some other org-mode clones in vim) shortly after I switched to emacs and learned to use org-mode, and found that these clones weren't anywhere near as powerful as org. As far as I know, there really is no substitute.
- sujay_m 10y agoIts true that org mode is useful for organising various stuff, but it can also do other things, literate programming. it also lets you work with multiple programming languages at the same time. I think that is more powerful than even the jupyter notebooks. http://orgmode.org/worg/org-contrib/babel/intro.html http://orgmode.org/worg/org-contrib/babel/intro.html
- akkartik 10y agoYes, super jealous of org mode. For my literate programming I try to follow the Vim philosophy of delegating to external tools: http://akkartik.name/post/wart-layers http://akkartik.name/post/wart-layers. My approach adds some new capabilities, but it's not nearly as nice an experience.
- dmos62 10y agoI'm somewhat drawn to helpers like this, but what ends up being a pollutant for me is the system within a system paradigm. With emacs I have the same problem. I enjoy the UNIX philosophy where one program should do one thing and interesting things come from composing them. I'd love for similar helpers, as I've called them, to be implemented as cli tools. You would then call them from vim for example. Interactivity would be sacrificed, but I don't value it lot. This probably makes me a purist or some other -ist.
- mikestew 10y agoJust a matter of what you want your tool to do, and how much you're willing to put up with. Do you really want a meetup for your editor? Are you willing to change operating systems just to make it easier to install your editor? Versus the "nightmare" of having to download something? (I can't tell if the author is being sarcastic or not in complaining about something that could be scripted.) Do you want to edit text, or play Tetris? Do you want to live inside your editor, or is it just one piece in a larger puzzle? Do you like to endlessly fiddle with your configuration, or get work done? I'm not saying either one is right. To me, it's kind of like Android vs. iPhone. Some are annoyed that they can't change the font weight on the wireless settings screen on iPhone. Some just want to connect to the network. Some want a Swiss army knife, some just want a sharp blade. The same argument has gone on for thirty years, but we collectively pretend we've brought something new to the table every time the subject comes up.
- fulafel 10y agoWhich OS is Emacs difficult to install on, in your opinion?
- mordocai 10y agoProbably referring to the post's point that they switched to arch in order to more easily get an updated emacs.
- vvanders 10y agoWindows, it took me ages to get a working spacemacs build on it.
- pksadiq 10y ago> Windows, it took me ages to get a working spacemacs build on it. spacemacs may not be considered as GNU Emacs. spacemacs can often break when any of the dependency package break. Also many people who began life with spacemacs usually switch to vanilla emacs + packages later to get more control on what they do.
- qwertyuiop924 10y agoTo this day, I'm pretty sure Emacs is the best development environment for dynamic languages (save maybe the LispM or the Smalltalk IDE, but that's another story), because it really embraces the REPL, something that seems to be against the trend with most IDEs.
- pklausler 10y agoI finally wrote my own editor so that I'd have something that works exactly the way that I want an editor to work. I don't need a built-in e-mail reader or ELIZA clone or scripting language, just really good interaction with UNIX text processing commands.
- cschmidt 10y agoYou should open source it. I find it interesting that there is so little exploration of how an editor should work outside of the emacs and vim models. It is like those are the only two possible ways.
- pklausler 10y agoDid. https://github.com/pklausler/aoeui https://github.com/pklausler/aoeui
- wccrawford 10y agoIn my head that's pronounced like, "Yowie!" I was just wondering how you pronounce it.
- pklausler 10y agoIt's spelled 'aoeui' but it's pronounced 'Throat-Warbler Mangrove'.
- proteinbased 10y agoI thought it would be 'luxury yacht' ;)
- cschmidt 10y agoGood name for a Dvorak optimized editor aoeui ~ qwerty (but on a different row)
- garaetjjte 10y ago
- pmoriarty 10y agoI've used vim (vi and some other vi colones before that) for over 25 years, and switched mostly to emacs (with evil) about 6 years ago or so. One of the main reasons I switched was because I fell in love with Scheme (and Lisp before that), and loved the idea of an editor that was fully integrated with Lisp, was scripted in Lisp, was mostly even written in Lisp, and had powerful Lisp-editing modes like Slime. It is possible to script vim through Scheme, but 99% of vim's scripts are written in vimscript, and that's really what the vim ecosystem is designed around. So emacs was a clear winner here. I also liked the idea of having email, web browsing, RSS news reading, IRC, Usenet, the shell, and more fully integrated in to the editor. Ideally, every app would be integrated in to my editor, and I'd love to command them all from within there. This is more or less what emacs promised. org-mode was another big draw. It seemed cool, and I wanted to find out if it was really as big a deal as everyone said. It is. All my note-taking is now in org, and I intend to move my browser bookmarks to it too. I've since tried various org-mode clones in vim, and they're not nearly as good. Finally, what really won me over was evil-mode, which allowed me to keep my decades of vim muscle memory and preference for modal editing. I spent several months, spending 10 hours a day to customize emacs the way I liked it, and to bring it mostly up to parity with my vim config (which was thousands and thousands of lines long), along with customizing some emacs extensions that had no vim equivalent (like emacs-w3m, which is an embedded web browser, which is still super handy despite not working with javascript). It took that long despite me knowing Common Lisp and Scheme before switching to emacs, which made learning Elisp a breeze compared to the extra effort it would take someone coming from vim who didn't know any Lisp. And still, even after all that work, I haven't gotten around to learning and customizing many of the things I really want to use emacs for, like email, IRC, RSS, Slime, and the various other extensions made for editing Lisp and Scheme. So I found the switch to be a ton of work, which was worth it for me, since I'm still using emacs instead of vim, and don't intend to switch back. But others who are considering a switch from vim to emacs should also be prepared to do a lot of work customizing emacs to your liking. It's a never-ending process, really, just as it is with vim. Even though I've switched to emacs as my primary editor, I still use both. Each have their strengths and weaknesses, and I still love vim (which comes in handy in certain situations where emacs just isn't cutting it for me).
- deleted 10y ago[deleted]
- pmoriarty 10y ago"If you wanted to modify this in a traditional terminal emulator, you would probably use the up arrow to retrieve the last command, use the left arrow (or Ctrl-Home) to get to the beginning of line to modify ‘rn’, then use the right arrow (perhaps in combination with Ctrl) to modify the second instance of folder 1." Not so. You can just type "set -o vi" in your shell, and do pretty much what the OP does in emacs. So wanting to do this kind of editing in the shell is not really a very good reason to switch to emacs. There are much better reasons for doing that.
- gkya 10y agoExcept the shell session is a buffer in emacs and you can do anything in it.
- deleted 10y ago[deleted]
- pault 10y agoWell, there's vimshell: https://github.com/Shougo/vimshell.vim https://github.com/Shougo/vimshell.vim
- spraak 10y agoJust hit Esc then V and it drops you into a vi/m buffer, too
- gkya 10y agoThough if I'm not wrong you only get to edit current command line. The emacs shell buffer allows random editing, i.e. you can run regex search/replace on the output of a couple commands ago, then run it again through grep, or clean up your shell buffer and save it to a file.
- spraak 10y agoCame here to post that. Also Neovim :)
- 10y ago
- mxvzr 10y agoI see no mention of the emacs daemon [1] which I've found very useful in resource constrained environments (ie. tiny VMs or underpowered chromebooks). That's especially true if you bring out the big guns like Spacemacs. [1] https://wiki.archlinux.org/index.php/Emacs#As_a_daemon https://wiki.archlinux.org/index.php/Emacs#As_a_daemon
- pawadu 10y agoIs emacs really that resource hungry? I started using emacs for writing C code on a machine with 1MB of memory. I feel that these complaints come mostly from people that have installed a ridiculous number of very inefficient plugins to make emacs look like something else. Spaceemacs in particular is big & slow (and IMO ugly on most devices).
- mxvzr 10y agoNo you're right it's not resource hungry: if you have an empty (or sane) ~/.emacs and ~/.emacs.d then it is completly fine. However if you have the habit of opening a new instance from the command line for a given file rather that go back to your already openned emacs instance, like I do, it will add up rather quickly (and the buffers won't be shared accross these multiple instances). With spacemacs it becomes particularly problematic (especially in regards to start up times), and I think that's where the emacs daemon truly shines. (edit: also no complaints here; I just feel this daemon is great and wanted to share the sentiment; it also felt relevant as AFAIK vim has no such feature)
- staked 10y agoEven though I've been happy with Vi/Vim for 15+ years I've always been intrigued by all of the "extras" Emacs can do. Any recommendations on guides integrating email/IRC/RSS into an Emacs workflow?
- mordocai 10y agoGNUs is notoriously hard to figure out how to config (though once I got it configured I've never had to mess it up again) but is the primary email client for people who want to directly grab their email in emacs instead of using a third party email sync and then reading it in emacs. ERC is built in, pretty good for IRC, very easy to use, and very configurable. There are other IRC clients as well. There are RSS readers in emacs as well but I don't currently use them. I think elfeed is the cool one to use nowadays.
- adictator 10y agoBeing a long time Vim user, and having dabbled in Emacs just a teeny weeny bit, I'm convinced that "Emacs is a wonderful operating system, lacking only a decent editor"!
- qwertyuiop924 10y agoI don't know how you got that impression. Evil-mode should have you covered.
- curried_haskell 10y agoThat's why you can use vim in emacs. Since I've been using spacemacs, I don't miss vim anymore. Use the best editor together with the best operating system!
- mi100hael 10y ago> The Vim/Emacs debate is often heated, but from what I can tell, Emacs users are more passionate. There are a number of Emacs meetups around the country where users share their setup and demonstrate useful tricks. That's just because Vim users are actually getting work done rather than going to help sessions for their configuration.
- NTripleOne 10y agoReally, because as far as I see it Vim users are sat on HN making snarky little comments like yours. :~)
- falcolas 10y agoI tried the conversion to Emacs using Spacemacs, but it repeatedly froze up on me, something deep inside locked in a tight loop, turning my laptop into a space heater. No custom plugins, using only a smattering of Spacemacs provided modes. I went back and tried it again some two major versions later, with the same problem. I eventually narrowed it down to the Go major mode, but I didn't have the perseverance to continue. Not when the same Go integrations were working just fine in Vim. Oh, yeah, and it still bugs me that Evil mode treats C-] word boundaries differently than Emacs M-. (which actually matches how Vim's word boundaries work by default).
- qwertyuiop924 10y ago>it still bugs me that Evil mode treats C-] word boundaries differently than Emacs M-. This is Emacs, not vi: If you don't like something, you can just change it.
- falcolas 10y agoThis is my professional career. After two hours of digging into both emacs and evil to try and find the appropriate word boundary combination I realized I had better things to do with my time than fix a broken editor.
- kahrkunne 10y ago"I don't like the default setting of this one specific command because it's subtly different from what I'm used to" isn't the same as "broken editor"
- falcolas 10y agoIt was breaking the word barrier on underscores, which effectively made it useless (to me, needless to say) for writing Python code, since I use tags for navigating code regularly. That's more than "subtly different".
- 10y ago
- VT_Drew 10y agoI will give Emacs a try once I figure out how to exit Vim.
- qb45 10y agoOnly nano and mcedit zealots are allowed to joke about :wq. The first time I started emacs I had to kill -9 it :p
- kazinator 10y agoMost interactive programs will succumb to this exit recipe: Ctrl-Z kill %1 Suspend to shell, kill job. Anything that won't suspend with Ctrl-Z should not be used. (Developers who flout important conventions of this sort should be punished with disuse of their projects.)
- lgas 10y agoThere are GUI versions of emacs too, some on platforms where they are not expected to respond to Ctrl-Z.
- nonsince 10y agoI discovered spacemacs literally days ago, and had this exact experience almost word-for-word. Interesting that this article should appear now. Loving spacemacs so far, I actually prefer its keybindings to vim's, even though the space-prefixed style was what kept me away from it when I first discovered it.
- kazinator 10y agoFunny, I'm a huge Lisper, yet I don't use Emacs. Conversely, I met people who would live and die by Emacs, who didn't know any Lisp, Emacs or otherwise. I'm worried that if I started using Emacs, I'd start hacking the Elisp (which I'd be terribly good at), and hate the lack of lexical scope, etc. I had some nice exchanges with Stefan; we discussed the implementation of generalized places not long ago: https://groups.google.com/forum/#!msg/comp.lang.lisp/5By5NL4cXWk/xis1dsgKAQAJ https://groups.google.com/forum/#!msg/comp.lang.lisp/5By5NL4... In TXR Lisp I implemented places in quite a different way from CL SETF expanders; from Stefan's comments I was informed that Emacs' "gv.el" is doing it in a similar way to my approach.
- wtbob 10y ago> I'm worried that if I started using Emacs, I'd start hacking the Elisp (which I'd be terribly good at), and hate the lack of lexical scope, etc. emacs has lexical scope these days:-) https://www.emacswiki.org/emacs/LexicalBinding https://www.emacswiki.org/emacs/LexicalBinding elisp still isn't nearly as good as Common Lisp, but it at least has lexical scope now.